或条件if块仅检查第一个stmt而不检查第二个stmt

时间:2019-04-28 10:42:03

标签: java selenium

我试图登录,输入用户名和密码,并写一个条件,如果未显示“ agree element”或“ admin header element”,则单击admin,但是我的代码只是检查我是否同意显示并抛出异常。

driver.get("entering url");
driver.manage().window().maximize();
       driver.findElement(By.id("BodyContent_MainContent_MainContentPlaceHolder_UserName")).sendKeys(" entering username");
       driver.findElement(By.id("BodyContent_MainContent_MainContentPlaceHolder_Password")).sendKeys("sending pwd");
       driver.findElement(By.id("BodyContent_MainContent_MainContentPlaceHolder_LoginButton")).click();
       if( !driver.findElement(By.xpath("//input[@value='I Agree']")).isDisplayed() || driver.findElement(By.id("admin_header")).isDisplayed()  );
          driver.findElement(By.id("admin_header")).click();
    }

1 个答案:

答案 0 :(得分:1)

使用findElements代替findElement,并检查返回的集合的size(),以检查是否存在“我同意”元素。