为什么我的代码无法正常工作并出现以下错误?

时间:2017-06-14 13:34:15

标签: java selenium-webdriver

  

org.openqa.selenium.TimeoutException:预期的条件失败:   (试过10次   第二个(MILLISECONDS间隔为500)

这是我的代码:

public static ExpectedCondition<Boolean> waitForTextToChange(final WebElement element, final String currentText) {
    return new ExpectedCondition<Boolean>() {
        @Override
        public Boolean apply(WebDriver arg0) {
            return !element.getText().equals(currentText);
        }
    };
}

使用代码:

WebElement element = driver.findElement(...);
String currentText = element.getText();
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(waitForTextToChange(element, currentText));

2 个答案:

答案 0 :(得分:1)

执行失败,因为命令没有在足够的时间内完成。可能是您需要1)延长等待文本出现的时间,或者2)您正在查看的元素可能不会以您期望的方式显示文本。您应该调试并查看element.getText()返回的内容。您正在使用等号,因此文本必须完全匹配。如果您有任何空格或小写与大写问题,则文本将不匹配。这有多种不同的原因可以解决这个问题。您应该使用断点添加try / catch和debug,以查看代码中究竟发生了什么。

答案 1 :(得分:0)

这是超时错误。 使用try,catch来处理异常。