量角器:等待自定义事件的最佳方式

时间:2015-02-08 19:08:22

标签: javascript angularjs testing protractor end-to-end

在我的测试用例中,使用量角器,我必须等待自定义事件。

我实际的等待方式是注入一个更改布尔值的临时函数,然后等待该布尔值更改。 换句话说:

browser.executeScript('window.on("customEvent", function(){ 
    window.hasBeenTriggered=true;
  })
)')
browser.driver.wait(function(){
   return browser.executeScript('return window.hasBeenTriggered;'     )===true;
 });

有没有更好的方法在量角器中等待自定义事件? 你怎么等待自定义事件? 量角器的API是否提供了这样做的方法?

1 个答案:

答案 0 :(得分:1)

请在此处阅读有关execute_async_script

的答案
browser.execute_async_script(
  function(callback) {
    window.on("customEvent", callback(e));
  }
).then(function(e) {
  console.log('custom event called with message: ' + e.message);
});