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

lke*_*eth 4 javascript selenium node.js remotewebdriver

我正在努力写一个测试; 我想检查是否存在警报,检查其文本是否存在并接受它.

我检查了如何在Selenium webdriver中等待警报?,如何使用WebDriver检查是否存在警报?selenium 2.4.0,如何检查是否存在警报,但我无法使用https://github.com/admc/wd进行调整

我写过一些东西

browser.alertText(function (err, text) {
  if (text) {
    browser.acceptAlert(function () {
      // ...
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

显示警报时效果非常好,但alertText没有警报窗口时会挂起.

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

谢谢你的帮助,

Dio*_*ion 7

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

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(); 
Run Code Online (Sandbox Code Playgroud)

'那么'与承诺有关:那么(成功,失败)

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

function ignoreAlert(driver) {
  // detect and accept any alert
  driver.switchTo().alert().then(function() {
    driver.switchTo().alert().accept();}, 
    function(){});
}
Run Code Online (Sandbox Code Playgroud)