angularjs - Protractor -需要放慢 promise 解决

标签 angularjs selenium selenium-webdriver webdriver protractor

在测试我的 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/

相关文章:

angularjs - 使用 angularjs 播放 rtmp 流的最佳方式是什么?

python - 使用 Python 加载页面时出现爬行问题(最多等待 5 秒)

java - XPath通过类名查找子节点

python - 如何从 selenium webdriver 元素中提取链接?

angularjs - 奇怪的 angular-ui datepicker 依赖错误

javascript - jquery fancybox + angularJS : fancybox button action issue

c# - 如何在 PhantomJS + Selenium 中隐藏控制台?

java - 无法为 IE11 自动拖放 : Selenium WebDriver

python - 无法使用selenium从页面中名为 'heading'的每个类获取数据

javascript - 带有注入(inject)服务的单元测试 Angular Controller