如何获取没有特定文本的Web元素

时间:2015-11-30 18:34:58

标签: java selenium xpath selenium-webdriver

我正在使用Selenium和Java编写测试,我对xpath感到困惑,例如:

不应该wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By. xpath("//span[not(text()='a')]")));//span[text()!='a']为我带来文字不是'a'的所有范围吗?

1 个答案:

答案 0 :(得分:0)

使用!=运算符而非使用not()有很大差异。 第一个仅在$node-set不为空时检查$value$node-set之间的不等式。

我们以下面的HTML摘录为例:

...
<div>
    <span>a</span>
</div>
...

在这种情况下,//span[text()!='b']将返回true,就像//span[not(text()='b')]一样。 但是,如果由于某种原因您想为div标记应用相同的逻辑,//div[text()!='b']将返回false,因为甚至没有单个节点存在不等式, //div[not(text()='b')]将返回true

作为底线(和个人推荐),您不应使用!=运算符来检查节点集,而应使用not()