等待Selenium的JavaScript事件

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

使用.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