【问题标题】:Dealing with Protractor.js' Asynchronous nature处理 Protractor.js 的异步特性
【发布时间】:2016-01-28 14:33:01
【问题描述】:

我正在努力处理 Protractor 的异步特性。

在不同的连接或浏览器上,有时会找到元素,有时不会,这取决于我的连接速度。

没有使用 .then() 回调,我在 Protractor 中可以使用哪些选项来处理它的异步问题,以确保在进行下一个操作之前元素已完全加载?

谢谢!

【问题讨论】:

  • 这是一个正在测试的 AngularJS 应用程序并且您没有更改 ignoreSynchronization 值吗?
  • 我确实添加了 browser.ignoreSynchronization = true 因为那已经存在了,这不正确/这让我感到困惑吗?我没有考虑到它
  • 您不应该在没有明确需要的情况下调整ignoreSynchronization。尽量不要改变它并运行你的测试。你有什么问题吗?
  • 现在取出后出现以下问题:失败:等待量角器与页面同步时出错:“在窗口上找不到角度”
  • 一个简单的建议 - 如果您没有 angular.js 应用程序,请不要使用量角器。如果您有 angular.js 应用,请不要触摸 ignoreSynchronization 并继续使用 false

标签: angularjs asynchronous protractor


【解决方案1】:

我有很多这样的问题..要解决它,如果一个元素依赖于异步调用来显示,我总是先让浏览器等待。

browser.wait(protractor.ExpectedConditions.elementToBeClickable(element(by.id('elementId'))), 3000);
element(by.id('elementId').click()

【讨论】:

    【解决方案2】:

    根据您的other question,您似乎正在测试一个非角度应用程序。因此,您想要使用ignoreSynchronization

    因此,您需要自己处理异步及其所有怪癖。例如。使用then() 回调和ExpectedConditions 等。

    【讨论】:

      猜你喜欢
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多