如果我期望硒不是在硒中工作

时间:2018-06-21 12:56:40

标签: selenium-webdriver

我的代码无法正常使用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);
}

1 个答案:

答案 0 :(得分:0)

一些断点可以解决此问题。问题不在于If / Else语句,而是此行:

WebElement success=driver.findElement(By.xpath(".//span[contains(text(),'Dashboard')]"));

如果您为findElement读了documentation,则在找不到要搜索的元素时会引发错误。这是您面临的错误,而不是if / else语句。一种可能的解决方案是在findElement的周围插入try / catch,并在引发错误时将成功值分配为null。