java - SeleniumPlus Internet Explorer 测试中输入区域文本警报不会消失

标签 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 驱动程序一起执行某些操作。任何帮助将不胜感激!

最佳答案

使用ExpectedConditions等待警报出现,并且通过 alert.accept(); 接受警报后您将收到 alert.getText() ,这肯定会抛出 NoAlertPresentException.Because 警报接受后就不会出现了。在接受或关闭警报之前,您必须对警报进行类似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();

关于java - SeleniumPlus Internet Explorer 测试中输入区域文本警报不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31004490/

相关文章:

java - 如何让我的 JWindow 窗口始终保持焦点

ruby - 以编程方式使用 selenium 与 ace 编辑器交互

java - 陈旧元素异常、元素不可点击、元素点击被拦截且没有此类元素错误显示,由同一元素交替显示

java - 如何使带有 List<> 的 kotlin 函数可从 Java 调用

java - CLASSPATH 启动一个简单的本地类文件

python - 如何使用selenium同时打开多个实例Firefox而不清除缓存和cookie

css - 如何从CSS中的webelement中找到后代Child

java - WebDriverException : It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream 和 long 未找到

java - Selenium, headless 和非 headless 之间切换

java - 删除 javafx TextArea 中选定的文本时出现异常