简体   繁体   English

如何在WebDriver with Java中使用XPATH单击此元素?

[英]How can I click on this element using XPATH in WebDriver with Java?

Here is the HTML: 这是HTML:

<li>
<input type="checkbox" checked="" name="selectedMstrPrivGroupList[9].mstrAuthorities[0].status"/>
Add Dexter
</li>

How could this element be clicked in WebDriver? 如何在WebDriver中单击此元素? It is a check box. 这是一个复选框。 And I want to use XPath as I have close to 30+ check boxes in the page. 我想使用XPath,因为我在页面中有近30个以上的复选框。 So that I can create a generic method and pass only the WebElement. 这样我就可以创建一个泛型方法并只传递WebElement。 I tried the following but didn't work. 我尝试了以下但没有奏效。

Driver.findElement(By.xpath("//input[contains(.,'Add Dexter')]")).click();

如果您要在页面上单击“添加Dexter”旁边的复选框,则可以使用:

Driver.findElement(By.xpath("//li[contains(.,'Add Dexter')]//input[@type='checkbox']")).click();

这是什么:

  Driver.findElement(By.xpath("//input[@name='selectedMstrPrivGroupList[9].mstrAuthorities[0].status']")).click();

你可以这样使用, driver.findElement(By.xpath("//li[contains(text(),'Add Dexter')]")).click()

You can use xpath to click on the element as below: 您可以使用xpath单击元素,如下所示:

driver.findElement(By.xpath("//input[text()='Add Dexter']")).click();

You can also click on that element by using cssSelector instead of xpath as below: 您也可以使用cssSelector而不是xpath单击该元素,如下所示:

driver.findElement(By.cssSelector("input:contains(^Add Dexter$)")).click();

Note: CssPath/CssSelector is faster than xpath. 注意:CssPath / CssSelector比xpath快。 So it's better to use cssSelector than xpath in most cases. 因此在大多数情况下使用cssSelector比使用xpath更好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM