在下面的代码中,如果登录成功,则应在控制台中显示“ Login pass”。如果失败,则应打印输入错误凭据的用户。
如果登录失败,则工作正常。但是,如果登录成功,则其他部分将不会执行。请帮我解决我做错的地方。
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"}
答案 0 :(得分:1)
有两种执行if-else阶梯的方法。
$ nasm -f elf64 -o shell.o shell.asm
$ ld -o shell shell.o
$ ./shell
方法集成。 类似:
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");
}
答案 1 :(得分:0)
Selenium无法找到与您给出的路径相对应的元素时,抛出NoSuchElement异常。
尝试抓住并处理这种情况。