javascript - 告诉 Protractor 的 waitForAngular 卡在什么地方?

标签 javascript angularjs protractor

有什么方法可以确定 Protractor 的 browser.waitForAngular() 被卡住了?

我的 Protractor 测试基本上加载页面,点击一个元素,然后等待新页面加载。我收到“11 秒后等待 Protractor 与页面同步时超时” 错误;但是,我没有使用 $timeout,并且可以看到在我的浏览器的开发人员控制台中没有未完成的 http 请求。

我可以在浏览器中手动重现与测试相同的步骤,然后运行 ​​

angular.getTestability(document.body)
    .whenStable(function() {console.log("holla")})

事实上,页面在加载后 1 秒内就稳定了。

如果我编写加载第一页的 Protractor 测试,然后使用 browser.get('index.html#second-page'),则测试通过。

我知道我可以在 Protractor 上设置 ignoreSerialization,但老实说,我宁愿不这样做,因为我担心我的 Angular 项目中存在一些潜在的错误。我可以采取任何步骤来更深入地了解 Protractor 中发生的事情吗?

最佳答案

如果您的代码中有 setTimeout, Protractor 将无法同步。考虑改用 $interval。

关于javascript - 告诉 Protractor 的 waitForAngular 卡在什么地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27559112/

相关文章:

angularjs - 来自重定向的快速 Passport 身份验证空白页

Protractor 4 : how to locate a parent at 'n' level above by class

javascript - Protractor by repeater 遍历对象属性

angularjs - 小数作为数字输入字段中的第一个字符

javascript - 如何仅在第一页(div)隐藏 "previous"按钮并在最后一页(div)隐藏 "next button"

javascript - 添加到 HTML 表单而不丢失 Javascript 中的当前表单输入信息

javascript - vis.js 时间轴周末日期

AngularJS Codeigniter base_url 路径设置

javascript - Protractor 测试 : How to set the value of text elements in a login form?

javascript - 仅在宽屏幕尺寸上加载 javascript 文件?