有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在每个服务生页面上重新加载页面

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

我的代码:

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

我想每隔5秒在每个.pollInterval上重新加载页面,其中包括:

driver.navigate().refresh()

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


共 (1) 个答案

  1. # 1 楼答案

    使用循环和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秒的最大值