gpt4 book ai didi

java - 如何在Selenium Webdriver中找到此webelement?

转载 作者:行者123 更新时间:2023-12-03 16:52:55 24 4
gpt4 key购买 nike

我的问题是在网页上找到一个复选框元素。我正在将Selenium Webdriver与Eclipse,TestNG和Java一起使用作为所选语言。

检查复选框元素可以得到以下结果:

<input type="checkbox" data-privid="13" data-priviligeeid="406">


我尝试使用以下xpath代码,其中字符串是从Chrome浏览器中的元素复制的xpath。我添加了转义字符以使引号被接受:

WebElement ChangeButton = driver.findElement(By.xpath("[@id=\"privs\"]/div[1]/div[2]/label/input"));


但是这样做会使ChangeButton为空。

我还尝试遍历一个数组,直到找到一个特定的data-privid值:

ArrayList<WebElement> inputs  =(ArrayList<WebElement>)driver.findElements(By.tagName("input"));     

if(inputs != null) {

for(WebElement checkbox : inputs) {
String attribute = checkbox.getAttribute("data-privid");
System.out.println(attribute);

....
}
}


这也不起作用,因为属性永远不会获得任何值。

有什么想法可以解决这个问题吗?

编辑:这已经解决了!

您的解决方案最初对我不起作用的原因是,因为我在属于一个类的方法中进行了导航,而在第二个类中获取了Web元素。我试图将它们合并到一个 xml文件中,但是由于某些原因,当定位器类尝试执行其操作时,我最终遇到了错误的 url。谢谢大家提供答案。我和 css定位器一起使用,它工作得很漂亮。

最佳答案

无需使用XPath。 CSS选择器更加方便。试试这个:

driver.findElement(By.cssSelector("input[type='checkbox'][data-privid='13']"));

关于java - 如何在Selenium Webdriver中找到此webelement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36331821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com