我有一种情况,我应该只选择那些颜色不是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/