使用Selenium WebDriverJs关闭警报

时间:2017-05-24 08:53:12

标签: javascript node.js selenium selenium-webdriver

我一直在努力尝试关闭浏览器打开的警报,只有我无法控制的特定模式,因此我需要一段代码来检测并关闭警报,以便能够继续浏览网页而不是停止执行。

我尝试了几种处理警报的方法,但目前没有一种方法成功:

以下是我一直在使用的一些例子:

1:

driver.wait(driver.switchTo().activeElement().then(
  function() {
    console.log("alert detected");
    driver.switchTo().alert().accept();
  },
  function() {
    console.log("no alert detected");
  }
), 1000);

2:

  driver.wait(driver.switchTo().alert().accept()
        .then(null, function(err)
        {
            console.log("ERROR ALERT");
            console.log(err);
            console.log("ERROR NAME");
            console.log(err.name);
        }), 1000);

3:注入这段代码,试图覆盖浏览器的警报,使其不显示:

  driver.executeScript('alert = function(){};');

基本上这三个是我一直在努力的主要解决方法,但目前似乎没有一个正常工作。

2 个答案:

答案 0 :(得分:1)

正如我所理解的那样,你想关闭页面上的任何警报,所以你可以尝试在你的代码中使用这个类

UnexpectedAlertBehaviour.class

另见这篇文章org.openqa.selenium.UnhandledAlertException: unexpected alert open

答案 1 :(得分:0)

这就是最终在所有页面之间的导航中关闭所有新出现的警报/确认的内容:

    driver.executeScript('alert = function(){};');
    driver.executeScript('confirm = function(){};');