如何在Selenium中找到只有属性的元素?
DOM中的元素如下:
<div data-test="test" data-app-test="xyz">
我可以按如下方式构建XPath:
//div[@data-app-test="xyz"]
但问题是@ data-app-test可以有动态值,所以我想找到一个包含属性&#34; data-app-test&#34;的元素,但它的值可以是任何值。我怎么能这样做?
答案 0 :(得分:2)
只需指定属性存在,不要将其值与任何内容进行比较:
//div[@data-app-test]
答案 1 :(得分:1)
您可以使用CSS Selector:
div[data-app-test]
答案 2 :(得分:0)
在性能方面你可以做得很好但是在某些情况下可以说是可靠的方式:
1)找到包含所有<div>
s;
2)driver.findElement(containerLocator)
.findElements(locatorDiv)
.forEach(element -> "yourAttribute".equals(element.getAttribute(attribute)))
。
使用element.getAttribute(NAME)的主要想法。
另一种方法就是使用XPath进行选择。
例如,//node[not(@*)]
这应该返回没有属性的所有元素。
答案 3 :(得分:0)
您可以使用以下方式进行检索:
@getter
答案 4 :(得分:0)
@ *是attribute :: *的缩写,并选择上下文节点的所有属性:
//div[@*]