首页 > 解决方案 > isDisplayed() 不工作,正在使用 pagefactory

问题描述

if (wait.until(ExpectedConditions.elementToBeClickable(user.profileEdit)).isDisplayed()) {  
    wait.until(ExpectedConditions.elementToBeClickable(user.profileEdit)).click();
    System.out.println("RECORD FOUND");
    } else {
      System.out.println("NO RECORD FOUND");
    }
}

提前致谢!

标签: selenium

解决方案


  1. wait.until(ExpectedConditions.elementToBeClickable(user.profileEdit))- 如果元素不可点击,TimeoutException 将被抛出并且.isDisplayed()不会被执行 - 你应该选择wait或者isDisplayed重写你的代码。
  2. 如果不工作,元素可能在框架中wait- 你只需要切换框架。
  3. NoSuchElementException如果user.profileEdit 元素在出现之前被初始化,将在你的情况下被抛出 - 你可以像这样重写你的测试
    test() { element.click(); .... assertThat(driver.findElement(By.xpath("user.profileEdit")).isDisplayed()) .as("RECORD NOT FOUND"); }

推荐阅读