[英]Why I get an error when I run an e2e test using protractor with waitForAngularEnabled(true)
我正在使用量角器进行 e2e 测试我的 angular 应用程序。 对于登录页面,我设置了waitForAngularEnabled(false),然后将其设置为waitForAngularEnabled(true)。 但是我的测试因此错误而失败:
Failed: script timeout
(Session info: chrome=85.0.4183.83)
(Driver info: chromedriver=85.0.4183.38 (9047dbc2c693f044042bbec5c91401c708c7c26a-refs/branch-heads/4183@{#779}),platform=Windows NT 10.0.18362 x86_64)
(Session info: chrome=85.0.4183.83)
(Driver info: chromedriver=85.0.4183.38 (9047dbc2c693f044042bbec5c91401c708c7c26a-refs/branch-heads/4183@{#779}),platform=Windows NT 10.0.18362 x86_64)
at Object.checkLegacyResponse (....node_modules\selenium-webdriver\lib\error.js:546:15)
at parseHttpResponse (....node_modules\selenium-webdriver\lib\http.js:509:13)
at doSend.then.response (....node_modules\selenium-webdriver\lib\http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: Protractor.waitForAngular() - Locator: By(css selector, body)
当我用谷歌搜索它时,我发现很多帖子建议我应该关闭同步或将 waitForAngularEnabled 设置为 false。 但后来我失去了这个功能。
有人知道如何解决这个问题吗?
感谢这篇文章( https://christianliebel.com/2016/11/angular-2-protractor-timeout-heres-fix/ ),我发现它是由应用程序中使用的超时引起的。 我用建议的解决方案替换了它们,现在它就像一个魅力。
因此,为此,您可以搜索 setInterval 和 setTimeout 并将它们替换为:
ngZone.runOutsideAngular(() => {
setInterval(() => {
ngZone.run(() => {
// async operation
});
}, 2500);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.