当前位置: 首页 > 面试题库 >

如何在Selenium中处理具有“ UnexpectedAlertBehaviour”功能的警报?

单于皓轩
2023-03-14
问题内容

在selenium框架2.25中,我看到我们具有UnexpectedAlertBehaviour枚举类型,但我不知道如何使用它。


问题答案:

我发现了有关您的问题的文档的这一部分:这对其他人也可能有用:

v2.25.0

=======

WebDriver:

  • 添加了用于处理BASIC和DIGEST身份验证的API

对话。目前尚未在任何驱动程序中实现。

  • 警告用户IE驱动程序将不再使用DLL中的DLL。

下一个版本。

  • 不推荐使用的浏览器特定的WebElement子类。

  • 远程Webdriver添加了对“ requiredCapabilities”的支持

并在Firefox中实现了对这些功能的基本支持

司机。未能满足要求的能力将导致

要抛出的SessionNotCreatedException。

  • 增加了确定应如何处理未处理警报的功能。 这由“ unexpectedAlertBehaviour”功能处理,该功能可以是“ accept”,“ dismiss”或“ ignore”之一。Java代码应使用UnexpectedAlertBehaviour枚举。目前仅在Firefox中实现。

  • 允许在Firefox中配置本机事件,并且

(通过实验)在IE中使用“ nativeEvents”功能。

  • 将支持的Firefox版本更新为17。

.....

此处提供了整个列表

这里是来源

package org.openqa.selenium;

    public enum UnexpectedAlertBehaviour {

      ACCEPT ("accept"),
      DISMISS ("dismiss"),
      IGNORE ("ignore")
      ;

      private String text;

      private UnexpectedAlertBehaviour(String text) {
        this.text = text;
      }

      @Override
      public String toString() {
        return String.valueOf(text);
      }

      public static UnexpectedAlertBehaviour fromString(String text) {
        if (text != null) {
          for (UnexpectedAlertBehaviour b : UnexpectedAlertBehaviour.values()) {
            if (text.equalsIgnoreCase(b.text)) {
              return b;
            }
          }
        }
        return null;
      }
    }

如我所见,您使用unexpectedAlertBehaviour来确定是否未处理警报,如果是,则将决定如何处理它。

我想应该是这样的(我的假设):

try{
alert.accept();
}

catch(org.openqa.selenium.UnexpectedAlertBehaviour){
///...blablabla
}


 类似资料:
  • 本文向大家介绍如何在Selenium中处理基于Web的警报?,包括了如何在Selenium中处理基于Web的警报?的使用技巧和注意事项,需要的朋友参考一下 Selenium WebDriver借助Alert界面提供了多个API来处理弹出窗口或警报。 解雇() 这将取消警报按钮。 接受() 这将接受警报按钮。 getText() 这将提取警报文本。 sendKeys() 这将在警报框中输入文本。 示

  • 在浏览器中是否有任何函数/类来处理警告或任何其他类型的弹出窗口。我正在处理一个弹出警告,我知道我可以通过使用< code>driver.switchto()来处理它。alert();并执行进一步的操作。既然serenity BDD非常适合处理元素,那么是否有任何特定的函数来处理警报(仅通过使用Serenity BDD函数)。

  • 我收到“警报数据:当您将信息发送到互联网时,其他人可能会看到该信息。是否要继续?“,同时运行登录脚本。我能够捕获安全警报数据,但无法接受该警报并进一步继续。

  • 问题内容: 我想检测是否弹出警报。目前,我正在使用以下代码: 问题是,如果网页的当前状态没有警报,它将等待特定的时间,直到达到超时,然后引发异常,因此性能真的很差。 有没有更好的方法,也许可以将警报事件处理程序用于动态发生的警报? 问题答案: 这是使用“从此处进行显式等待”对我有用的WebDriver:高级用法

  • 我正在使用Selenium Webdriver来验证一个特定的站点,在进入该站点时,它会通过一个提示窗口提示我输入用户名和密码。我无法右键单击它来检查属性 我已经尝试了driver.switchTo().alert()和Webdriver Wait,但它仍然不能工作。在Chrome和firefox浏览器上都试过 我希望提示窗口将填充用户名和密码,但它没有

  • 本文向大家介绍如何在Java中处理Selenium中的代理?,包括了如何在Java中处理Selenium中的代理?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助PROXY类在Java中使用Selenium处理代理。