我试图找到一个属性的元素。好吧,我可以在Selenium中找到具有Id、tagName、Xpath和所有其他预定义方法的元素。但是,我正在尝试编写一个专门返回WebElement的方法,给定Attribute名称和Value作为输入。
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不是一种选择,那么是否有其他更好的方法来实现这一点?
4条答案
按热度按时间t40tm48m1#
你可以用CSS轻松地完成这个任务。
公式为:
所以如果你有,
您可以使用以下命令找到它:
这使用任何可能的属性来工作。
本页提供了关于如何制定有效的css选择器以及匹配其属性的良好信息:http://ddavison.io/css/2014/02/18/effective-css-selectors.html
xu3bshqb2#
我不明白你的要求:
假设XPath不是一个选项…
如果这只是您的一个不正确的假设,那么XPath是一个完美的选择!
当然,您需要将
element
、attribute
和value
替换为您的实际名称。您也可以使用通配符查找“任何元素”:bvk5enib3#
使用CSS选择器:
编辑:CSS选择器代替XPath
mwg9r5ms4#
根据文件:
By.id
通过ID属性定位元素。此定位器使用CSS选择器*[id='$ID']
,* 而不是 *document.getElementById
。其中id是要搜索的ID因此,您可以使用下面的代码搜索具有任何给定属性(ID和值)的DOM元素