0

我想在每次迭代时重新加载页面Awaitility.await()以检查元素的文本是否已更改。

我的代码:

Awaitility.await()
        .pollInterval(5000, TimeUnit.MILLISECONDS)
        .atMost(30, SECONDS)
        .until(() -> driver.findElement(By.id("id")).getText(), equalTo(EXPECTED_TEXT));
}

我想.pollInterval每 5 秒重新加载一次页面,其中:

driver.navigate().refresh()

我怎样才能做到这一点?或者用java建议一个更好的解决方案。谢谢!

4

1 回答 1

0

使用循环,并且Thread.sleep(...)有最简单的方法:

String xpath = "//*[contains(., '" + EXPECTED_TEXT +"')]";
WebElement element = null;

for (int i = 0; i < 6; i++) {
    try {
        element = driver.findElement(By.xpath(xpath));
        break;
    } catch (NoSuchElementException ex) {
        driver.navigate().refresh();
        Thread.sleep(5000);
    }
}

if (element != null) {
    // Found it!
}

六次尝试乘以 5 秒将为您提供大约 30 秒的最大值。

于 2020-05-14T01:35:08.820 回答