在测试我的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);
};
答案 0 :(得分:-1)
首先,在执行下一个异步Promise之前,Protractor会等待所有$ http调用被解析。如果你的问题在一些动画中很慢,你可能想要使用类似下一个代码块的东西来等待元素isDisplayed()或isPresent()或更复杂的条件:
browser.wait(function() {
return element(by...).isDisplayed();
}, timeout);