WebDriver - 如何让webdriver等到文本显示(不使用定位器)

时间:2015-05-12 11:57:29

标签: java selenium webdriver

我已经对WebDriver执行了操作(比如,我点击了一个按钮),结果是一个文本将显示在页面上。

我们不知道文本的定位元素,但我们知道会显示什么文本。

请建议一种等待文本显示的方法。

我遇到了WebDriverWait,但需要WebElement等待文字。

3 个答案:

答案 0 :(得分:5)

转到基于xpath文本的搜索。它允许您根据文本

查找元素
background: url("../img/bg_index.jpg");

答案 1 :(得分:0)

即使您不知道确切的元素,也可以使用WebDriverWait。如果预期文本在页面上只出现1次,您可以通过Xpath到达它:

WebDriverWait wait = new WebDriverWait(driver, numberOfSeconds);    
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(text(), 'my text')]")));

答案 2 :(得分:0)

要在元素中显示等待文本:

private ExpectedCondition elementTextDisplayed(WebElement element, String text) {
        return new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver driver) {
                return element.getText().equals(text);
            }
        };
    }

 protected void waitForElementTextDisplayed(WebElement element, String text) {
        wait.until(elementTextDisplayed(element, text));
    }

public void waitUntilTextToBePresentInElement(WebElement element, String text){
        wait.until(ExpectedConditions.textToBePresentInElement(element, text));
}