16

我想找到这个元素,

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

使用 XPath,它表示选择属性等于且内容包含美元符号 ( ) 的div元素。class"item-price"$

4

3 回答 3

26

这个 XPath 表达式:

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

将匹配包含“$”div的类的所有元素。item-price

如果要匹配值中指定了多个 CSS 样式的情况,contains()在测试中使用它很有用。@class@class


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

//div[contains(concat(' ',@class,' '), ' item-price ') and contains(., '$')]
于 2013-10-21T22:34:14.503 回答
6
//div[@class = 'item-price'][contains(., '$')]
于 2013-10-22T07:01:10.477 回答
2

根据 HTML:

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

有:

  • 类属性只有一个值,即item-price
  • innerText$符号开头。

因此,要根据类属性的值 ieitem-price 和以美元符号 ( ) 开头的innerText$内容定位此元素,您可以使用以下任一解决方案:

  • 使用starts-with()

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

    //div[@class='item-price' and contains(., '$')]
    
于 2020-08-21T21:49:08.800 回答