等待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(); }); });
文档: