具有特定值的任何属性的所有元素的XPath?

时间:2016-03-10 21:41:13

标签: html xml selenium xpath

我正在使用Selenium来识别任何可能在其任何属性中具有指定值的HTML元素。我希望在XPath中有一些方法可以做到这一点,但我还没有找到任何答案。

5 个答案:

答案 0 :(得分:16)

首先,如果要在其上应用xpath选择,则必须将HTML转换为xhtml。

用于选择在其某个属性中具有指定值的(x)html元素的xpath是:

//*[@*="specified value"]

答案 1 :(得分:16)

以下是用于选择...

的XPath表达式
  • 所有元素

    //*
    
  • 具有属性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;串