首页 > 解决方案 > Selenium Java 保持刷新页面直到元素可见

问题描述

Selenium Java 保持刷新页面直到元素可见。

我需要 Page 保持刷新,直到元素可见。

do{
        driver.navigate().refresh();
    //DEV
}while(!driver.findElement(By.xpath("//*[text()='UserID']")).isDisplayed());

此代码仅刷新一次。我需要保持刷新(10 次或更多)直到元素可见。

标签: javaseleniumselenium-webdriver

解决方案


如果findElement()元素不存在,则抛出异常 - 因此循环旋转一次,抛出异常,然后循环停止。所以你需要处理:

boolean displayed = false;
do{
  try{
    displayed = driver.findElement(By.xpath("//*[text()='UserID']")).isDisplayed());
  } catch (NoSuchElementException){
    driver.navigate().refresh();
  }
} while(!displayed);

如果添加一些计数器/最大计时器逻辑不会有任何伤害,否则如果元素没有出现,循环将无休止地旋转。


推荐阅读