javascript - 如何使用 nodejs webdriver (wd) 检查警报是否打开

标签 javascript node.js selenium remotewebdriver

我正在努力编写测试;我想在其中检查警报是否存在,如果存在则检查其文本并接受它。

我检查了How to wait for an alert in Selenium webdriver ? , How to check if an alert exists using WebDriver?selenium 2.4.0, how to check for presence of an alert ,但我无法使用 https://github.com/admc/wd 对其进行调整

我已经写了一些东西

browser.alertText(function (err, text) {
  if (text) {
    browser.acceptAlert(function () {
      // ...
    });
  }
});

当显示警报时它工作得非常好,但是当没有警报窗口时 alertText 挂起。

如何在发出 alertText 之前检查警报是否存在?

谢谢你的帮助,

最佳答案

这可能会有所帮助 - 这就是我使用用于 node.js 的 Selenium Webdriver 检测警报的方式:

var webdriver = require('selenium-webdriver');

var url = "http://web-page-to-test-for-alert";

driver = new webdriver.Builder().
    withCapabilities(webdriver.Capabilities.chrome()).
    build();

driver.get(url);

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

driver.quit(); 

'then' 与 promises 相关:then(success, failure)

这也可能有帮助 - 这就是我忽略页面上出现的任何警报的方式:

function ignoreAlert(driver) {
  // detect and accept any alert
  driver.switchTo().alert().then(function() {
    driver.switchTo().alert().accept();}, 
    function(){});
}

关于javascript - 如何使用 nodejs webdriver (wd) 检查警报是否打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21281106/

相关文章:

javascript - 在 promise 解决之前表达 JS 退出 API

javascript - 如何立即为 hover() 函数调用 handlerOut?

c# - 将图片大小调整为 2MB

javascript - jQuery.parseHTML 的反向

node.js - Node 中的 abort() 和 exit() 有什么区别?

selenium - 我可以为 Protractor 设置更长的超时时间以连接到 selenium 驱动程序吗?

node.js - Loopback $owner 不适用于 findById

javascript - 一行推送item数组并返回item

python - 使用 Selenium WebDriver 选择元素后跟文本

javascript - Selenium,如何按ENTER键,没有元素