使用Selenium等待JavaScript事件

时间:2016-06-09 11:17:31

标签: node.js selenium selenium-webdriver automation browser-automation

我正在Selenium(Node.js)之上构建一个自动化框架,该框架包含许多步骤。 每个步骤都跟在前一个步骤完成后,返回一个promise(就像Selenium的driver.click()返回的那个等)。 是否可以等待JavaScript事件在浏览器上触发?如果是这样,那么模式是什么?

1 个答案:

答案 0 :(得分:2)

使用.executeAsyncScript等待事件发生:

driver.executeAsyncScript(function(callback) {
  window.addEventListener('message', function onmessage() {
    window.removeEventListener('message', onmessage);
    callback();
  });
});

文档:

http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebDriver.html#executeAsyncScript