我有一种情况,我应该只选择那些颜色不是rgb(170,170,170)的元素。

我正在尝试使用以下xpath定位元素:

.//span[@class='box' and not(@style='background-color: rgb(170, 170, 170)')]


使用此xpath firebug,可以选择所有元素,包括我用not()限制的那些元素。

最佳答案

正如kjhughes所指出的那样,您的style属性最有可能包含比background-color更多的样式。要以任何方式找到您的价值,可以使用contains()

(contains(@style,, 'background-color: rgb( 170, 170, 170)')


但是现在格式化可能仍然具有不同数量的空格。
为了避免它们,您可以使用translate()删除所有空格,请使用:

translate(@style,' ','')


因此,请尝试:

//span[@class='box' and  not(contains(translate(@style,' ',''), 'background-color:rgb(170,170,170)') )]

关于xpath - 如何在xpath中将not()与'and'结合使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36769030/

10-09 00:15