【发布时间】:2017-12-24 19:33:54
【问题描述】:
我有一个应用程序,它要求我找到一个元素的 XPath 选择器,然后查看该 XPath 是否可以简化。
如果我有
<a class="abc def gh">
我可以确定 XPath
a[contains(@class, "abc")
足够具体。问题是,它还选择了“abcxyz”类的项目,
有没有办法选择只有“abc”类的项目?
即我认为这很清楚,但我想找到具有“abc”或“abc def”但不具有“abcxyz”类的项目。
这里有一个更具体的例子,因为我认为目前的答案都不起作用:
<div>
<span id="x" class="btnSalePriceLabel">Sale:</span>
<span id="y" class="btnSalePrice highlight">$20.40</span>
</div>
我想要任何 XPath 选择器将选择第二个跨度而不是第一个。
如果我尝试
//span[@class and contains(concat(' ', normalize-space(@class), ' '), ' btnSalesPrice ')]
我没有选择任何东西。同样
//span[contains(concat(' ', normalize-space(@class), ' '), ' btnSalesPrice ')]
【问题讨论】:
-
澄清一下,如果可以的话,我会使用 css 选择器,但我只能使用 xpath
标签: xpath