如何在 XPath 中使用“not”?
Posted
技术标签:
【中文标题】如何在 XPath 中使用“not”?【英文标题】:How to use "not" in XPath? 【发布时间】:2010-12-05 18:40:11 【问题描述】:我想写一些类似的东西:
//a[not contains(@id, 'xx')]
(表示所有有'id'属性的链接不包含字符串'xx')
我找不到正确的语法。
【问题讨论】:
【参考方案1】:not()
是 XPath 中的一个函数(与运算符相反),所以
//a[not(contains(@id, 'xx'))]
【讨论】:
有没有办法说抓住所有标签而不是其中的 标签?想象像
text textTEXTtext text
之类的东西。我想要 p 中的所有文本,但不想要 a 中的文本。 XPath 有可能吗?这不完全是我的情况,它比这更复杂一些,但它或多或少是一样的。【参考方案2】:你可以使用not(expression)
函数
或
expression != true()
【讨论】:
【参考方案3】:这些答案都不适用于 python。我解决了这个
a[not(@id='XX')]
您还可以通过|
运算符在您的xpath 中使用或条件。比如
a[not(@id='XX')]|a[not(@class='YY')]
有时我们想要没有类的元素。所以你可以这样做
a[not(@class)]
【讨论】:
【参考方案4】:使用boolean function
,如下所示:
//a[(contains(@id, 'xx'))=false]
【讨论】:
以上是关于如何在 XPath 中使用“not”?的主要内容,如果未能解决你的问题,请参考以下文章
在 xpath 中使用 [not] 检索与给定值不匹配的内容 (PLSQL)
使用webdriver查找元素时如何在xpath中使用撇号(')?