Selenium 2.0 Web Driver:isTextPresent的实现

时间:2011-10-20 10:47:10

标签: selenium junit

我正在寻找一个有效的实施方案。我提出的最好的是:

    public boolean isTextPresent(String string) {

        for (WebElement e : drv.findElements(By.cssSelector("*"))) {

            if (e.isDisplayed() && e.getText().contains(string)) {
                return true;
            }

        }
        return false;
    }

2 个答案:

答案 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]*$"));