C# Selenium/Chrome-选择不带ID的复选框输入
提前谢谢你的帮助。 刚接触Selenium/Chrome,在遇到特定场景之前,我对它进行了很好的操作 我有一个包含5个字段的模式(3个下拉列表和一个带2 LI的UL) 每个LI包含一个标签和输入复选框 所有下拉列表都有一个Id,因此它们很容易使用C# Selenium/Chrome-选择不带ID的复选框输入,c#,selenium,selenium-webdriver,xpath,selenium-chromedriver,C#,Selenium,Selenium Webdriver,Xpath,Selenium Chromedriver,提前谢谢你的帮助。 刚接触Selenium/Chrome,在遇到特定场景之前,我对它进行了很好的操作 我有一个包含5个字段的模式(3个下拉列表和一个带2 LI的UL) 每个LI包含一个标签和输入复选框 所有下拉列表都有一个Id,因此它们很容易使用FindElement(By.Id(“Id”))进行操作 然而,Ul内的Li没有它们,我每次试图找到它们时都没有任何例外 注册证明书 托收代理许可证 您的目标是li: new SelectElement(BaseTest.Driver.Fin
FindElement(By.Id(“Id”))进行操作代码>
然而,Ul内的Li没有它们,我每次试图找到它们时都没有任何例外
-
注册证明书
-
托收代理许可证
您的目标是li:
new SelectElement(BaseTest.Driver.FindElement(By.CssSelector(
"#CertificateToAdd>li:nth-child(2)"))).SelectByValue("172");
这里,xpath表示输入是标签的子项,而不是同级项:
new SelectElement(BaseTest.Driver.FindElement(By.XPath(
"//*[@id="CertificatesToAdd"]/li[2]/label/input"))).SelectByValue("172");
我想您可能可以从中找到答案。要单击与
标记相关的复选框,您可以使用以下解决方案:
- 注册证明书:
- 收款代理许可证:
谢谢你,伙计,一切都在细节中。@WilliamHowell如果这个/任何答案对你有帮助,请投票,以利于未来的读者。
BaseTest.Driver.FindElement(By.XPath("//label[@class='checkbox'][normalize-space()='Certificate of Registration']/input[@class='add-certificate-checkbox']")).Click();
BaseTest.Driver.FindElement(By.XPath("//label[@class='checkbox'][normalize-space()='Collection Agency License']/input[@class='add-certificate-checkbox']")).Click();