javascript - 如何在 Protractor/ Selenium 中实现间隔

标签 javascript selenium protractor

我正在编写一系列自动化测试并遇到间歇性超时/同步错误。上网查了一下,说用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 连续循环执行。官方文档如下:

$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/

相关文章:

javascript - 尝试用数组填充 <select>

javascript - 如何在Jquery和bootstrap中实现自动滚动页面

javascript - Protractor - 返回操作系统

javascript - 如何从选择框获取值?

javascript - react native 路由器流量回到根场景

javascript - 重定向 If - Javascript

javascript - 为什么 Ajax 调用在 WebDriverWait (Selenium) 期间被卡住

javascript - 如何处理 JavaScript 弹出的警报? Selenium 网络驱动程序

java - Selenium FirefoxDriver - 如果使用 Geckodriver 单击关闭窗口,WebElement.click() 将被挂起

javascript - 将所有浏览器步骤捕获到 HTML 报告中