我的代码无法正常使用if else语句,默认情况下,即使“ if语句”错误,它也会检查if条件,并抛出错误:
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":".//span[contains(text(),'Dashboard')]"}
它不检查else if语句。
driver.findElement(By.name("userName")).sendKeys(user);
driver.findElement(By.name("password")).sendKeys(pass);
driver.findElement(By.name("submit")).click();
Thread.sleep(3000);
//WebDriverWait wait= new WebDriverWait(driver,60);
WebElement success = driver.findElement(By.xpath(".//span[contains(text(),'Dashboard')]"));
WebElement failure = driver.findElement(By.xpath(".//div[contains(text(),'Your login attempt was not successful due to Invalid credentials!!')]"));
if(success!=null && success.getText().matches("Dashboard")) {
System.out.println("Able to login with this credentials "+user+" "+pass);
}
else if(failure!=null && failure.getText().matches("Your login attempt was not successful due to Invalid credentials!!")) {
System.out.println("Unable to login with this credentials "+user+" "+pass);
}
答案 0 :(得分:0)
一些断点可以解决此问题。问题不在于If / Else语句,而是此行:
WebElement success=driver.findElement(By.xpath(".//span[contains(text(),'Dashboard')]"));
如果您为findElement
读了documentation,则在找不到要搜索的元素时会引发错误。这是您面临的错误,而不是if / else语句。一种可能的解决方案是在findElement的周围插入try / catch,并在引发错误时将成功值分配为null。