xpath:查找其class属性与值匹配且其文本包含特定字符串的节点

时间:2013-10-21 20:07:15

标签: xpath

我想找到这个元素:

<div class="item-price">$0.99</div>

使用XPath,它告诉我一个div,其class属性等于“item-price”,其内容字段包含一个美元符号。

3 个答案:

答案 0 :(得分:13)

这个XPath表达式:

//div[contains(@class, 'item-price') and contains(., '$')]

将匹配包含&#39; $&#39;的div类的所有item-price元素。

如果您希望匹配contains()值中指定了多种CSS样式的情况,则在@class的测试中使用@class非常有用。


警告:要获得更强大的解决方案,请应用以下技术以避免意外的子字符串匹配(item-price匹配,例如item-prices):

//div[contains(concat(' ',@class,' '), ' item-price ') and contains(., '$')]

答案 1 :(得分:4)

//div[@class = 'item-price'][contains(., '$')]

答案 2 :(得分:0)

按照HTML:

<div class="item-price">$0.99</div>

有:

  • 仅class属性的一个值,即item-price
  • innerText $ 符号开头。

因此,要相对于类属性的值(即item-price innerText 以美元符号($开头的内容)定位此元素,可以使用以下解决方案:

  • 使用starts-with()

    //div[@class='item-price' and starts-with(., '$')]
    
  • 使用contains()

    //div[@class='item-price' and contains(., '$')]