【问题标题】:How to implement intervals in protractor/selenium如何在量角器/硒中实现间隔
【发布时间】:2015-07-15 02:34:02
【问题描述】:
【问题讨论】:
标签:
javascript
selenium
protractor
【解决方案1】:
$interval 服务与 Angular 捆绑在一起;您无需下载任何新文件或与 Protractor 集成任何内容。您的 Protractor 测试很可能就如他们所愿。
当每个人告诉您使用 $interval 时,每个人的意思是您(或您公司的开发人员)需要查看您的应用程序的源代码以查找重复发生的 $timeout 或 $http 请求(在递归函数、一个循环或两个错误地相互调用的函数),或者可能是一个失败的 $http 请求(这将在 Chrome 的开发者控制台中的“网络”选项卡下显示为鲜红色)。
循环 $timeouts(和失败的 $http 请求)不好的原因是 Protractor,按照设计,将等待 每个 $timeout 回调和 $http 请求完成完全在它会做任何事情之前。但是,它不会等待$interval 回调完成。 $interval 与$timeout 的语法几乎完全相同,因此从一个更改到另一个并不难——唯一的区别是$timeout 执行一次,而$interval 在一个连续循环中执行。官方文档如下:
$timeout
$interval
在我发布的另一个答案中列出了更多可能性,以及指向 Protractor 可能发生这种情况的原因的官方列表的链接:
Timed out waiting for Protractor to synchronize with the page after 50001ms
我向您保证这是这些问题之一,但如果您提供有关您的情况的更多信息,我可以提供一些更具体的提示。