Selenium Webdriver单选按钮问题



我导出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"}

看起来页面中的单选按钮是动态生成的。那么,有两种可能的错误原因:

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

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

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

最新更新