Tib*_*ben 17 javascript protractor angular
我想使用Protractor端到端测试我们的angular 2应用程序,但我坚持使用以下消息:
"Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds."
Run Code Online (Sandbox Code Playgroud)
我的conf文件.
exports.config = {
directConnect: true,
specs: ['spec.js'],
// For angular2 tests
useAllAngular2AppRoots: true,
}
Run Code Online (Sandbox Code Playgroud)
Chrome已打开,网站也已打开,直到超时才会发生任何事情.
禁用同步时(使用browser.ignoreSynchronization = true;),就可以了.但我失去了"自动等待"功能,这是使用Protractor的主要优势之一.
该应用程序完全基于角度2.所以为什么这不起作用?
我们的开发人员告诉我,我们不是轮询(根据Protractor文档可能的原因之一).顺便说一句,我们正在使用websocket架构.我不知道是否有链接.
实际上,我根本不知道如何解决这个问题.
有人可以帮帮忙吗?
你的猜测是正确的.当它们是您的angular2应用程序中运行的任何未完成任务时,将发生此错误.
是的,最常见的原因是当应用程序连续轮询$ timeout或$ http时,Protractor将无限期地等待并超时.但这也可能发生在App占用时间超过11秒的情况下
有关不同超时的更多信息,请参阅此处
默认超时值为11秒.您可以通过调整config.js中的以下值来更改此值,并尝试查看您是否仍然看到该问题
/**
* The timeout in milliseconds for each script run on the browser. This
* should be longer than the maximum time your application needs to
* stabilize between tasks.
*/
allScriptsTimeout?: number;
Run Code Online (Sandbox Code Playgroud)
临时启用browser.ignoreSynchronization修复它,因为在回答中报道在这里.
browser.ignoreSynchronization = true;
Run Code Online (Sandbox Code Playgroud)
(抛出错误的代码)
browser.ignoreSynchronization = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9308 次 |
| 最近记录: |