具有特定值的任何属性的所有元素的 XPath?
Posted
技术标签:
【中文标题】具有特定值的任何属性的所有元素的 XPath?【英文标题】:XPath for all elements with any attribute with specific value? 【发布时间】:2016-06-25 23:15:14 【问题描述】:我正在使用 Selenium 来识别任何可能在其任何属性中具有指定值的 html 元素。我希望 XPath 中有某种方法可以做到这一点,但我还没有找到任何答案。
【问题讨论】:
【参考方案1】:首先,如果要在 HTML 上应用 xpath 选择,则必须将其转换为 xhtml。
选择在其属性之一中具有指定值的 (x)html 元素的 xpath 是:
//*[@*="specified value"]
【讨论】:
【参考方案2】:这里是用于选择的 XPath 表达式...
所有元素:
//*
所有具有属性的元素,a
:
//*[@a]
属性a
等于v
的所有元素:
//*[@a='v']
具有任意属性的所有元素:
//*[@*]
任何属性等于v
的所有元素:
//*[@*='v']
感谢 Pierre 第一次发帖 //*[@*='v']
。请点赞his answer。
【讨论】:
【参考方案3】://*[@*[contains(.,'val')]]
将从根中找到任何其值中包含“val”的属性的任何后代节点。
【讨论】:
【参考方案4】:谢谢各位!!我在 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
。
【讨论】:
【参考方案5】://a[@href[contains(.,'mailto:')]]
此路径将找到所有带有 href 属性的标签都包含“mailto:”字符串
【讨论】:
以上是关于具有特定值的任何属性的所有元素的 XPath?的主要内容,如果未能解决你的问题,请参考以下文章
XPath/HtmlAgilityPack:如何查找具有属性 (href) 特定值的元素 (a) 并查找相邻的表列?