我正在寻找一个有效的实施方案。我提出的最好的是:
public boolean isTextPresent(String string) {
for (WebElement e : drv.findElements(By.cssSelector("*"))) {
if (e.isDisplayed() && e.getText().contains(string)) {
return true;
}
}
return false;
}
答案 0 :(得分:5)
更快的方法就是这样:
public boolean isTextPresent(string str)
{
IWebElement bodyElement = driver.FindElement(By.TagName("body"));
return bodyElement.Text.contains(str);
}
它在C#中,但它是相同的概念。获取body标签的文本会自动返回所有嵌套元素的文本。我唯一不确定的是隐藏元素是否包括在内。
答案 1 :(得分:0)
以下使用WebDriver中的Java的代码应该可以正常工作:isTextPresent:
assertTrue(driver.getPageSource().contains("Welcome Ripon"));
assertTrue(driver.findElement(By.id("widget_205_after_login")).getText().matches("^[\\s\\S]*Welcome ripon[\\s\\S]*$"));