0

我导出 Selenium IDE 代码以在 Selenium Web 驱动程序中进行自动化测试。代码已正确执行,但在单选按钮上它停止并在 Selenium Webdriver 上生成错误。请指导我在 webdriver 上成功执行单选按钮。

我的代码是:

driver.FindElement(By.Id("ContentPlaceHolder1_ucTriple_rptOffers_AddToCartButton_0")).Click();

            System.Threading.Thread.Sleep(20000);  
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlAddons_1_ctl03_0_1_0")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlAddons_1_ctl03_1_3_1")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlDevices_1_ctl03_0_1_0")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlAddons_2_ctl01_2")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlDevices_2_ctl03_0_2_0")).Click();
            driver.FindElement(By.Id("rptShoppingServiceGroup_dlDevices_2_ctl03_0_0_0")).Click();
            driver.FindElement(By.Id("SubmitButton")).Click();

发现的错误是:

Unable to locate element: {"method":"id","selector":"rptShoppingServiceGroup_dlAddons_1_ctl03_0_1_0"}

如何从中删除错误并成功执行。

4

2 回答 2

0

您页面中的单选按钮似乎是动态生成的。然后,有两个可能的错误原因:

  • 当您尝试单击收音机时,收音机不存在。确保您已执行使该单选按钮出现的先前步骤。
  • 生成的单选按钮具有不同的名称(名称中的数字可能会有所不同)。尝试使用 xpath 而不是确切的 id 来选择它。

我的建议是在没有选择指令的情况下运行代码,并且不要退出驱动程序(即不要关闭浏览器),因此您可以检查结果页面并查看单选按钮是否显示以及它的实际名称是什么。

于 2013-05-17T11:26:29.410 回答
0

单选按钮 ID 是动态生成的;我们可以通过创建一个相对 Xpath来解决这个问题.contains("text"),即使 id 发生变化,它也会定位元素。

于 2021-08-29T16:51:05.967 回答