我需要确保在使用Protractor测试AngularJS应用时,我不需要在步骤之间添加显式睡眠。
我能够在Protractor / Angular的代码中找到Protractor了解通过$ http服务发出的请求,并在继续下一步之前等待完成:https://github.com/angular/protractor/blob/3bad3fa440a4a51f57d08c222e7b7fd4fb7781ce/lib/clientsidescripts.js#L28
但是我无法找到如何将摘要周期考虑在内,以便在继续之前等待它完成。
可能不需要它,因为客户端操作不需要很长时间,而Selenium本身有一个机制,在继续之前等待元素出现,但我需要确保这是可靠的。
答案 0 :(得分:1)
我从未在量角器和我的应用$digest
周期之间遇到任何同步问题。
我认为Protractor内部waitForAngular
正在发挥作用。我找到了更多信息:
来自Debugging Protractor Tests - docs 的量角器尝试在执行操作之前与您的页面同步。 这意味着等待所有$ timeout或$ http请求解析,并让当前的$ digest周期结束。如果您的页面在脚本执行超时内未同步,Protractor将失败并显示消息'等待Protractor与页面同步'超时'。
。
您还应该看到关于Control Flow的说明。