【发布时间】:2016-06-25 23:15:14
【问题描述】:
我正在使用 Selenium 来识别任何可能在其任何属性中具有指定值的 HTML 元素。我希望 XPath 中有某种方法可以做到这一点,但我还没有找到任何答案。
【问题讨论】:
我正在使用 Selenium 来识别任何可能在其任何属性中具有指定值的 HTML 元素。我希望 XPath 中有某种方法可以做到这一点,但我还没有找到任何答案。
【问题讨论】:
首先,如果要在 HTML 上应用 xpath 选择,则必须将其转换为 xhtml。
选择在其属性之一中具有指定值的 (x)html 元素的 xpath 是:
//*[@*="specified value"]
【讨论】:
所有元素:
//*
所有具有属性的元素,a:
//*[@a]
属性a等于v的所有元素:
//*[@a='v']
具有任意属性的所有元素:
//*[@*]
任何属性等于v的所有元素:
//*[@*='v']
感谢 Pierre 第一次发帖 //*[@*='v']。请点赞his answer。
【讨论】:
//*[@*[contains(.,'val')]]
将从根中找到任何其值中包含“val”的属性的任何后代节点。
【讨论】:
谢谢各位!!我在 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 和 my-attr1 和 span 和 my-attr3。
【讨论】:
//a[@href[contains(.,'mailto:')]]
此路径将找到所有带有 href 属性的标签都包含“mailto:”字符串
【讨论】: