量角器 - 需要放慢承诺的结果

时间:2016-01-27 19:02:23

标签: angularjs selenium selenium-webdriver webdriver protractor

在测试我的Angular App e2e时,我有一个承诺,可以快速解析并且元素没有显示(要清楚它在手动点击时会显示在测试之外)。

我使用此代码来减慢承诺的结果。它确实成功地减慢了其他一切的量角器测试...但它并没有减慢承诺的结果。有什么建议吗?

origFn = browser.driver.controlFlow().execute;

browser.driver.controlFlow().execute = function() {
  var args;
  args = arguments;
  origFn.call(browser.driver.controlFlow(), function() {
    return protractor.promise.delayed(100);
  });   
  return origFn.apply(browser.driver.controlFlow(), args);
};

1 个答案:

答案 0 :(得分:-1)

首先,在执行下一个异步Promise之前,Protractor会等待所有$ http调用被解析。如果你的问题在一些动画中很慢,你可能想要使用类似下一个代码块的东西来等待元素isDisplayed()或isPresent()或更复杂的条件:

browser.wait(function() {
  return element(by...).isDisplayed();
}, timeout);