Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Selenium/Chrome-选择不带ID的复选框输入_C#_Selenium_Selenium Webdriver_Xpath_Selenium Chromedriver - Fatal编程技术网

C# Selenium/Chrome-选择不带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

提前谢谢你的帮助。 刚接触Selenium/Chrome,在遇到特定场景之前,我对它进行了很好的操作

我有一个包含5个字段的模式(3个下拉列表和一个带2 LI的UL)

每个LI包含一个标签和输入复选框

所有下拉列表都有一个Id,因此它们很容易使用
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();