当前位置: 首页 > 知识库问答 >
问题:

使用Selenium接受Windows安全警报

曹浩波
2023-03-14

环境:我必须用Selenium测试一个Web应用程序。在访问起始页之前,会抛出windows安全警报。由于Alert/Verification-Popup是在os级别上,所以selenium Alert-API无法处理它。

解决方法:为了访问该页面,我编写了一个脚本,其中填充用户名和密码,然后单击enter(脚本代码来自:https://automationtestingsimplified.wordpress.com/2011/08/11/how-to-handle-window-based-pop-up-using-selenium-and-autoit/)。

要解决的问题:Selenium抛出“UnhandleDalertException:Modal dialog present”,尽管Modal dialog已被接受。

我试过:

  • 通过alert-api访问模式对话框。这里的问题是,我不能填写用户名。即使我用机器人。“Driver.SwitchTo().Alert().Accept();”也不起作用。
  • 让驱动程序使用“wait.until(expectedconditions.not(expectedconditions.AlertiSpresent()));”等到警报不存在为止
  • 若要接受对话框,请在已接受对话框时执行事件操作。

可能的解决方案:忽略对话框或将其设置为不存在于驱动程序中。但我找不到解决办法。

共有1个答案

公良扬
2023-03-14

我遇到了同样的问题。在找到更好的解决方案之前,我使用Robot将密钥发送给alert以接受它

private void acceptAlert() {
    try {
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_TAB);
        robot.keyPress(KeyEvent.VK_ENTER);
    } catch (AWTException e) {
        e.printStackTrace();
    }
}
 类似资料:
  • 问题内容: 有谁知道如何禁用此功能?还是如何从已自动接受的警报中获取文本? 该代码需要工作, 但是却给出了这个错误 我正在将FF 20与Selenium 2.32一起使用 问题答案: 就在前几天,我已经回答了类似的问题,所以它仍然很新鲜。您的代码失败的原因是,如果在处理代码时未显示警报,则该警告通常会失败。 值得庆幸的是 ,来自Selenium WebDriver的家伙们已经等待了它。对于您的代码

  • 它仍然无法工作,并且现在得到了timeoutException。

  • 当我在chrome(版本-35)中运行时,我得到了这个错误。当我在版本-33中检查它时,它没有显示出来。请帮助我解决这个问题。

  • 问题内容: 试图找到一种方法,使每次连接使用Selenium的连接使用“不可信”证书时,禁止Firefox发出警告。我认为,最有效的解决方案是设置浏览器首选项之一。 非常感谢!任何建议将不胜感激! 问题答案: 我发现有关在Selenium for Java中启用此功能的评论 。还有一个关于同一问题的StackOverflow问题,对于Java For Python,这也是我想要的目标语言,我通过浏

  • 安全告警即实时监测系统中的安全告警事件,如异常登录等,当发现安全问题后,将会及时通知管理员用户进行处理等。 安全告警即实时监测系统中的安全告警事件,如异常登录等,当发现安全问题后,将会及时通知管理员用户进行处理等。目前仅支持异常登录的安全告警事件,当用户连续登录失败后被锁定将会发送安全告警记录发送给锁定用户以及用户所在域的域管理员和系统管理员。 说明 管理后台下可以看到系统所有的安全告警记录; 域

  • 安全告警即实时监测系统中的安全告警事件,如异常登录等,当发现安全问题后,将会及时通知管理员用户进行处理等。 安全告警 安全告警即实时监测系统中的安全告警事件,如异常登录等,当发现安全问题后,将会及时通知管理员用户进行处理等。