具有特定值的任何属性的所有元素的 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 选择 divmy-attr1spanmy-attr3

【讨论】:

【参考方案5】:

//a[@href[contains(.,'mailto:')]] 此路径将找到所有带有 href 属性的标签都包含“mailto:”字符串

【讨论】:

以上是关于具有特定值的任何属性的所有元素的 XPath?的主要内容,如果未能解决你的问题,请参考以下文章

XPath/HtmlAgilityPack:如何查找具有属性 (href) 特定值的元素 (a) 并查找相邻的表列?

SimpleXML:选择具有特定属性值的元素

Xpath:选择除具有特定属性的元素之外的所有元素

XPath:查找具有特定属性的所有已知标签[重复]

如何在具有 xmlns 属性的 xml 中使用 xpath 获取特定的嵌套元素? [复制]

xpath按元素和属性查找节点,其中包含具有特定id的子元素