我正在尝试查找并等待文本“ Total”的元素,并在“ Total”之后加空格。我使用的定位器是:
//td[./text()='Total ']
我为此实施的等待时间是:
wait.until(ExpectedConditions.textToBePresentInElement(element,"Total "));
我得到TimeOutException
。如果我在文本“ 总计”之后删除空格。它正在工作。现在的等待实现是:
wait.until(ExpectedConditions.textToBePresentInElement(element, "Total"));
为什么条件textToBePresentInElement
不能与确切的文本一起使用?
答案 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
,但没有尾随空格就可以工作。