我想在每次迭代 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更好的解决方案。 谢谢!
最佳答案
使用循环和 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 秒。
关于java - 如何在服务员的每次迭代中重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61784877/