在没有对服务器发出请求的时间方面,量角器与AngularJS集成

时间:2014-07-08 18:14:27

标签: angularjs protractor

我需要确保在使用Protractor测试AngularJS应用时,我不需要在步骤之间添加显式睡眠。

我能够在Protractor / Angular的代码中找到Protractor了解通过$ http服务发出的请求,并在继续下一步之前等待完成:https://github.com/angular/protractor/blob/3bad3fa440a4a51f57d08c222e7b7fd4fb7781ce/lib/clientsidescripts.js#L28

但是我无法找到如何将摘要周期考虑在内,以便在继续之前等待它完成。

可能不需要它,因为客户端操作不需要很长时间,而Selenium本身有一个机制,在继续之前等待元素出现,但我需要确保这是可靠的。

1 个答案:

答案 0 :(得分:1)

我从未在量角器和我的应用$digest周期之间遇到任何同步问题。

我认为Protractor内部waitForAngular正在发挥作用。我找到了更多信息:

  

量角器尝试在执行操作之前与您的页面同步。 这意味着等待所有$ timeout或$ http请求解析,并让当前的$ digest周期结束。如果您的页面在脚本执行超时内未同步,Protractor将失败并显示消息'等待Protractor与页面同步'超时'。

来自Debugging Protractor Tests - docs

您还应该看到关于Control Flow的说明。