textToBePresentInElement()无法使用确切的文本

时间:2019-05-30 11:16:54

标签: java selenium selenium-webdriver webdriverwait

我正在尝试查找并等待文本“ Total”的元素,并在“ Total”之后加空格。我使用的定位器是:

//td[./text()='Total ']

我为此实施的等待时间是:

wait.until(ExpectedConditions.textToBePresentInElement(element,"Total "));

我得到TimeOutException。如果我在文本“ 总计”之后删除空格。它正在工作。现在的等待实现是:

wait.until(ExpectedConditions.textToBePresentInElement(element, "Total"));

为什么条件textToBePresentInElement不能与确切的文本一起使用?

1 个答案:

答案 0 :(得分:2)

您可以在source code

中看到答案
public static ExpectedCondition<Boolean> textToBePresentInElement(final WebElement element, final String text) {
    //...
    String elementText = element.getText();
    return elementText.contains(text);
    //...
}

该方法使用element.getText();获取文本,这意味着文本返回as rendered by the browser,即没有尾随空格

  

“获取元素文本”命令旨在返回元素的文本“   呈现” ...

使用文字"Total "时,基本上可以检查是否符合预期条件

"Total".contains("Total ");

哪个是false,但没有尾随空格就可以工作。