如何在量角器/硒中实现间隔

时间:2015-07-14 18:18:15

标签: javascript selenium protractor

我正在编写一系列自动化测试并获得间歇性的超时/同步错误。我在网上看了一下,被告知使用间隔可以解决这个问题

https://github.com/angular/angular.js/blob/master/src/ng/interval.js

我想知道如何将interval.js文件与其余文件合并?我是否在protractor-config.js中添加一行,或者将其链接到别处。如果是,我该如何链接呢?

1 个答案:

答案 0 :(得分:4)

$interval服务与Angular捆绑在一起;您无需下载任何新文件或与Protractor集成任何内容。你的量角器测试很可能就像他们一样。

当他们告诉您使用$interval时,每个人的意思是您(或您公司的开发人员)需要查看您的应用的源代码,以查找$timeout$http个请求反复发生(在一个递归函数,一个循环,或两个错误地互相调用的函数),或者可能是一个失败的$http请求(这将在Chrome的开发者控制台中以鲜红色显示,在网络下标签)。

循环$timeout(以及失败的$http请求)不好的原因是,按照设计,Protractor将等待每个 $timeout回调和$http请求在完成任何操作之前完成。但是,它等待$interval回调完成。 $interval$timeout的语法几乎完全相同,因此从一个更改为另一个并不困难 - 唯一的区别是$timeout执行一次,$interval在连续循环上执行。官方文档如下:

$timeout

$interval

我发布的另一个答案列出了更多的可能性,以及指向Protractor官方列表的原因列表: Timed out waiting for Protractor to synchronize with the page after 50001ms

我向您提供90%的保证,这是其中一个问题,但如果您提供有关您情况的更多信息,我可以提供一些更具体的提示。