【问题标题】:Selenium WebDriver how to close browser confirmation popup with OK and Cancel buttonSelenium WebDriver 如何使用确定和取消按钮关闭浏览器确认弹出窗口
【发布时间】:2015-10-09 10:58:03
【问题描述】:

我正在使用 selenium webDriver 为 Web 应用程序编写测试,遇到了一个场景,当我尝试删除链接时,浏览器会弹出一个提示:

删除:“dummyname”你确定吗?

浏览器页面要求您确认是否要删除数据,有 2 个按钮:OKcancel

如何点击这些按钮?

【问题讨论】:

  • 你能发布那个弹出窗口的 html 代码吗?以及您使用的是哪种语言?爪哇?
  • 请阅读指南How do I ask a good question,尤其是关于最小、完整和可验证示例(MCVE)的部分。这将帮助您自己解决问题。如果您这样做但仍然卡住,您可以回来发布您的 MCVE、您尝试了什么以及结果如何,以便我们更好地帮助您。
  • 是的,我正在使用 java 编写脚本

标签: java selenium selenium-webdriver


【解决方案1】:

没问题

driver.switchTo().alert().accept();

取消

driver.switchTo().alert().dismiss();

希望对你有帮助:)

【讨论】:

  • driver.switchTo().alert();使用它,它将在弹出窗口中传递您的控制权并找到确定按钮元素并对其执行单击事件。然后使用 driver.switchTo().defaultContent();切换回主页
  • 如果还是不行,请分享HTML代码
  • 一些弹出消息不是标准的 html 警告消息。可以是用户定义的弹出窗口。(我在项目中有几个这样的)。您应该通过选择器选择 OK 或 Yes(或任何名称)。检查该弹出窗口是否有任何 html 代码。
  • 你是绝对正确的@Mahsum Akbas,这就是我要求 HTML 代码的原因...... :)
【解决方案2】:

您应该在 BasePage.java 中抛出类似的内容并调用 acceptAlert() 或 dismissAlert(),但神奇之处在于上述 Shubham Jain 的代码。

protected void acceptAlert() {
    waitFor(new BooleanCondition() {
        public Boolean apply(WebDriver webDriver) {
            try {
                webDriver.switchTo().alert().accept();
                return true;
            } catch (WebDriverException ex) {
                return false;
            }
        }
        public String describeFailure() {
            return COULD_NOT_LOCATE_OR_ACCEPT_ALERT_BOX;
        }
    });
}

protected void dismissAlert() {
    waitFor(new BooleanCondition() {
        public Boolean apply(WebDriver webDriver) {
            try {
                webDriver.switchTo().alert().dismiss();
                return true;
            } catch (WebDriverException ex) {
                return false;
            }
        }
        public String describeFailure() {
            return COULD_NOT_LOCATE_OR_ACCEPT_ALERT_BOX;
        }
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多