我正在编写一系列自动化测试并遇到间歇性超时/同步错误。上网查了一下,说用interval可以解决这个问题
https://github.com/angular/angular.js/blob/master/src/ng/interval.js
我想知道如何将 interval.js 文件与其余文件合并?我是向 protractor-config.js 添加一行,还是将它链接到其他地方。如果是这样,我该如何链接它?
最佳答案
$interval
服务与 Angular 捆绑在一起;您不需要下载任何新文件或将任何东西与 Protractor 集成。您的 Protractor 测试很可能就这样了。
当每个人告诉您使用$interval
时,他们的意思是您(或您公司的开发人员)需要查看应用程序的源代码以获取$timeout
或重复发生的 $http
请求(在递归函数、循环或两个错误地相互调用的函数中),或者可能是失败的 $http
请求(这会在 Chrome 开发者控制台的“网络”选项卡下以鲜红色显示)。
循环 $timeout
(以及失败的 $http
请求)不好的原因是 Protractor 在设计上会等待每 $timeout
回调和 $http
请求在它做任何事情之前完全完成。但是,它不会等待$interval
回调完成。 $interval
与 $timeout
的语法几乎完全相同,因此从一个更改为另一个并不难——唯一的区别是 $timeout
执行一次,$interval
连续循环执行。官方文档如下:
在我发布的另一个答案中列出了更多可能性,以及 Protractor 官方列表的链接,列出了可能发生这种情况的原因: Timed out waiting for Protractor to synchronize with the page after 50001ms
我给你 90% 的保证,这是其中一个问题,但如果你提供更多关于你的情况的信息,我可以给出一些更具体的提示。
关于javascript - 如何在 Protractor/ Selenium 中实现间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414312/