java - 由于预期条件失败而面临错误:等待警报出现(尝试 5 秒,间隔 500 毫秒)
问题描述
当条件下降时,它进入 else,但当它为 true 时,不进入 if
try {
//WebDriverWait wait = new WebDriverWait(driver, 5);
if(wait.until(ExpectedConditions.alertIsPresent()) == null) {
System.out.println("alert was not present")
(wait.until(ExpectedConditions.elementToBeClickable(By.xpath("/html/body/div[2]/div/div/div[2]/button[2]"))).click();
Confirmation.click();
}
else {
String Recipemessage = driver.switchTo().alert().getText();
System.out.println(Recipemessage);
if(Recipemessage.equals(alertmessage2) || Recipemessage.equals(alertmessage4) ) {
Thread.sleep(3000);
driver.switchTo().alert().accept();
break;
}
}
} catch(Exception exp7) {
System.out.println(exp7);
}
解决方案
ExpectedConditions.alertIsPresent()
永远不会返回null
,它将返回警报或抛出TimeoutException
Alert alert = null;
try {
alert = wait.until(ExpectedConditions.alertIsPresent());
catch(Exception) { }
if(alert == null) {
System.out.println("alert was not present")
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("/html/body/div[2]/div/div/div[2]/button[2]"))).click();
Confirmation.click();
}
else {
String Recipemessage = alert.getText();
System.out.println(Recipemessage);
if (Recipemessage.equals(alertmessage2) || Recipemessage.equals(alertmessage4)) {
Thread.sleep(3000);
alert.accept();
break;
}
}
推荐阅读
- java - 为什么这个素数会这样工作?
- javascript - 包含给定`type`的所有可能值的TypeScript`array`?
- laravel - 如何使用条码扫描仪和 DataTables Laravel
- gpu - 每帧更新数兆字节的顶点数据
- python - 为什么我会收到 NameError:未定义全局名称“阶段”
- python - 多个请求值的平均值
- python - 模块“int”没有属性“from_bytes”
- bitbucket - Laravel Forge:哎呀!您的输入存在一些问题
- r - 在 R-studio 中安装“devtools”包时出现问题
- c# - .NET 如何将图像附加到电子邮件的 html 模板中