我正在尝试查找具有属性的元素。我可以在Selenium中找到Id、tagName、Xpath和所有其他预定义方法的元素。但是,我正在尝试编写一个方法,专门返回WebElement,给定属性名和值作为输入。
List<WebElement> elements = webDriver.findElements(By.tagName("Attribute Name"));
for(WebElement element : elements){
if(element.getText().equals("Value of Particular Attribute")){
return element;
}
else{
return null;
}
}
假设XPath不是一个选项,还有其他更好的方法吗?
改用CSS选择器:
List<WebElement> elements = webDriver.findElements(By.cssSelector("*[attributeName='value']"));
编辑:CSS选择器而不是XPath
我不明白你的要求:
假设XPath不是一个选项...
如果这只是你的一个不正确的假设,那么XPath是一个完美的选择!
webDriver.findElements(By.xpath("//element[@attribute='value']"))
当然,您需要用实际名称替换元素
、属性
和value
。您还可以使用通配符查找“任何元素”:
webDriver.findElements(By.xpath("//*[@attribute='value']"))
使用CSS可以轻松完成此任务。
公式是:
element[attribute='attribute-value']
所以如果你有,
<a href="mysite.com"></a>
您可以通过以下方式找到它:
By.cssSelector("a[href='mysite.com']");
这可以使用任何可能的属性。
本页提供了有关如何制定有效css选择器以及如何匹配其属性的详细信息:http://ddavison.io/css/2014/02/18/effective-css-selectors.html
问题内容: 我正在尝试查找具有Attribute的元素。好吧,我可以在Selenium中找到具有Id,tagName,Xpath和所有其他预定义方法的元素。但是,我正在尝试编写一种方法,该方法将给定属性名称和值作为输入专门返回WebElement。 假设XPath不是一个选择,还有其他更好的方法吗? 问题答案: 您可以使用CSS轻松完成此任务。 公式为: 所以如果有的话 您可以使用以下方法找到它:
问题内容: 我有一些如下所示的元素: 如何向属性值为(零)的元素添加类? 我尝试了许多不同的解决方案,但没有任何效果。一个例子: 任何的想法? 问题答案: 使用属性等于选择器 它在树上起作用 获取当前匹配元素集中每个元素的后代,并通过选择器,jQuery对象或元素进行过滤。
问题内容: 我是AngularJS的新手。我了解到可以使用以下查询在DOM中找到元素: 这对于按ID或CSS类名查找元素很有用。但是,我需要能够使用其他方法来查找元素。我有一个看起来像下面的元素: 我无法查询“ myContainer”,因为它已被重用了多少。因此,我想找到任何具有“ my- directive”属性的元素。如何搜索DOM并找到任何使用“我的指令”的元素? 问题答案: 您应该在指令
我试图找到一个没有属性的元素的XPath。它只能通过其父级的属性来识别。然而,父级也不具有唯一属性。 例如: 这里有两个元素。如何获得第二个元素。上面的语法为我提供了第一个元素。。但是,如果我使用: 我得到一个错误消息"xpath表达式 '//*[@id="btn"][2]/ul/li[2]/a/span'无法计算或不会导致WebElement"
这是代码: 这是我已经在python上尝试过的: 返回: 你知道吗?谢谢