在SeleniumPlus Internet Explorer测试中,输入区域文本警报不会被忽略

时间:2015-06-23 13:44:16

标签: java selenium selenium-webdriver webdriver automated-tests

所以我在自动化测试中有一个方法,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驱动程序执行某些操作。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

使用ExpectedConditions等待警报出现,并在通过alert.getText()接受警报后获得alert.accept();,这肯定会引发NoAlertPresentException。因为接受后警报不会出现。在接受或取消警报

之前,您已经使用alert.getText()等警报进行操作
 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();