所以我在自动化测试中有一个方法,VerifyAndDismissAlert()
try{
WebDriver WD = WebDriver();
Alert alert = WD.switchTo().alert();
alert.accept();
String alertText = alert.getText();
Pause(1);
SeleniumPlus.VerifyValues(AlertTextToVerify, alertText);
} catch (Exception e) {
e.printStackTrace();
}
并且在Chrome中运行时,当尝试在输入框中输入时,警报会弹出并解除。
但是,在Internet Explorer中,警报会弹出,并且不会被忽略。似乎警报甚至无法识别,因为当我被迫单击“确定”继续测试时,它会抛出
org.openqa.selenium.NoAlertPresentException: No alert is active
此测试与Chrome驱动程序完美配合,因此必须对IE驱动程序执行某些操作。任何帮助将不胜感激!
答案 0 :(得分:2)
使用ExpectedConditions等待警报出现,并在通过alert.getText()
接受警报后获得alert.accept();
,这肯定会引发NoAlertPresentException。因为接受后警报不会出现。在接受或取消警报
WebDriverWait wait = new WebDriverWait(WD, 30);
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = WD.switchTo().alert();
String alertText = alert.getText();
System.out.println(alertText);
alert.accept();