首页 > 解决方案 > 如果元素在硒的 IF 中不可见,如何移动到 ELSE 条件

问题描述

我正在编写一段代码,其中在 if 条件下我给出一个条件,即如果显示元素,它们只会转到 if 部分,否则如果元素未显示,则它应该转到 else 部分。但是每当它到达 if 条件时,它就会搜索元素,当它没有找到它时,它会给出一个超时异常。可以做什么?

    public void addaddress() {
            suites.setupEnviroment();
            WebDriver driver = suites.getWebDriver();
            try {
                //code to find elements

                try {
                      if(driver.findElement(By.xpath("//div[@class='toast lgksToast ']")).isDisplayed()){
                        System.out.println("fail");
                      }
                      else{
                          System.out.println("pass");
                      }
                    } catch (Exception e) {
 System.out.println(e);  
                    }
            }catch(Exception e) {
                System.out.println(e);
            }
        }

在上面的代码中,如果找不到具有此 xpath (//div[@class='toast lgksToast ']) 的元素,则它不执行 else 部分我应该为此做什么请建议。

提前致谢

标签: seleniumif-statementautomation

解决方案


使用该size()方法,findElements它将开始工作。

if(driver.findElements(By.xpath("//div[@class='toast lgksToast ']")).size() > 0) {
    System.out.println("fail");
} else {
    System.out.println("pass");
}

推荐阅读