在测试我的 Angular App e2e 时,我 promise 会快速解析并且元素不会显示(需要明确的是,当手动单击时它确实会在测试之外显示)。
我使用这段代码来减慢 promise 的解析速度。它确实成功地减慢了其他一切的 Protractor 测试......但它并没有减慢 promise 解决的速度。有什么建议吗?
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);
};
最佳答案
首先,Protractor 在执行下一个异步 Promise 之前等待所有 $http 调用被解析。如果你的问题是动画缓慢,你可能想使用类似下一个代码块的东西来等待元素 isDisplayed() 或 isPresent() 或更复杂的条件:
browser.wait(function() {
return element(by...).isDisplayed();
}, timeout);
关于angularjs - Protractor -需要放慢 promise 解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35045823/