猿问

我正在尝试执行以下 if else 条件,但 else 部分未执行 'if' 条件不满足

在下面的代码中,如果登录成功,它应该在控制台中打印“登录通过”。如果失败,它应该打印输入错误凭据的用户。

如果登录失败,它工作正常。但是当登录成功时

else 部分不会被执行。请帮我找出我做错的地方。


driver.findElement(By.xpath("//*[@id=\"btnLogin\"]")).click();


  if(driver.findElement(By.xpath("/html/body/div/form/div/div/span")).getText().equals("Invalid Credential")) {


  System.out.println(user);  


  }


  else {


      System.out.println("Login Passed"); 

  }

错误:


org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/form/div/div/span"}


临摹微笑
浏览 157回答 2
2回答

江户川乱折腾

有两种方法可以执行 if-else 梯形图。您可以使用 try catch 块并将代码与Selenium 中isDisplayed()存在的方法集成。就像是 :driver.findElement(By.xpath("//*[@id="btnLogin"]")).click();  try{if(driver.findElement(By.xpath("/html/body/div/form/div/div/span")).isDisplayed()){  System.out.println("Invalid");  }else{System.out.println("Valid");  }catch(Exception e){System.out.println("in exception");  }使用列表(在此处存储无效凭据 xpath)并检查它的大小。如果大小为1,那么肯定有来自网页的错误信息,否则流程将转到else语句。代码:driver.findElement(By.xpath("//*[@id="btnLogin"]")).click();           if(driver.findElements(By.xpath("/html/body/div/form/div/div/span")).size()==1){          System.out.println("Invalid");                   }         else {          System.out.println("Login Passed");         }

大话西游666

当 Selenium 找不到与您提供的路径对应的元素时,它会抛出 NoSuchElement 异常。使用 try catch 并处理这种情况。
随时随地看视频慕课网APP

相关分类

Java
我要回答