我正在使用Selenium来识别任何可能在其任何属性中具有指定值的HTML元素。我希望在XPath中有一些方法可以做到这一点,但我还没有找到任何答案。
答案 0 :(得分:16)
首先,如果要在其上应用xpath选择,则必须将HTML转换为xhtml。
用于选择在其某个属性中具有指定值的(x)html元素的xpath是:
//*[@*="specified value"]
答案 1 :(得分:16)
所有元素:
//*
具有属性a
:
//*[@a]
属性a
等于v
的所有元素:
//*[@a='v']
具有任何属性的所有元素:
//*[@*]
所有属性等于v
的元素:
//*[@*='v']
感谢Pierre首次发布 //*[@*='v']
。请upvote his answer。
答案 2 :(得分:4)
//*[@*[contains(.,'val')]]
将从根中找到任何后代节点,其值中包含“val”的任何属性。
答案 3 :(得分:0)
谢谢你!我在XPathFiddle上尝试了这个,它似乎有效:
示例HTML :
<html>
<body>
<div my-attr1='value1'>
<a>
<span my-attr2='value2'> Some Link </span>
</a>
</div>
<span my-attr3='value1'> Some Text </span>
</body>
</html>
示例XPath :html//*[@*='value1']
上面的XPath,选择带有div
的{{1}}和带有my-attr1
的{{1}}。
答案 4 :(得分:-1)
//a[@href[contains(.,'mailto:')]]
此路径将找到所有带有href属性的标签包含&#34; mailto:&#34;串