Javascript 失败:等待异步角度任务在11秒后完成时超时
我想使用量角器对angular 2应用程序进行端到端测试,但我始终坚持以下信息:Javascript 失败:等待异步角度任务在11秒后完成时超时,javascript,angular,protractor,Javascript,Angular,Protractor,我想使用量角器对angular 2应用程序进行端到端测试,但我始终坚持以下信息: "Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds." 我的conf文件 exports.config = { directConnect: true, specs: ['spec.js'], // For angular2 tests useAllAngular2AppRoot
"Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds."
我的conf文件
exports.config = {
directConnect: true,
specs: ['spec.js'],
// For angular2 tests
useAllAngular2AppRoots: true,
}
Chrome被打开,网站也被打开,然后在超时之前什么都没有发生
禁用同步时(使用browser.ignoreSynchronization=true;),一切正常。但我失去了“自动等待”功能,这是使用量角器的主要优点之一
该应用程序完全基于angular 2。那么为什么这不起作用呢
我们的开发人员告诉我,我们没有进行轮询(这可能是原因之一)。
顺便说一下,我们正在使用websocket体系结构。我不知道是否有联系
实际上,我根本不知道如何解决这个问题
有人能帮忙吗?你猜得对。如果angular2应用程序中有任何未完成的任务,则会发生此错误 是的,最常见的原因是当应用程序连续轮询$timeout或$http时,量角器将无限期等待并超时。但这也可能发生在应用程序耗时超过11秒的情况下 有关不同超时的更多信息,请参阅 默认超时值为11秒。您可以通过调整中的以下值来更改此设置,并尝试查看是否仍存在问题
/**
* 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;
临时启用browser.ignoreSynchronization会修复它,如回答中所述 (引发错误的代码)
修改测试用例并将 第一次单击后,应该可以正常工作
但是,推荐的方法是将
conf.js
文件中的默认超时覆盖为allScriptsTimeout:110000
您可以尝试下面的解决方案并检查它是否工作感谢分享。我的问题出现在oauth工作流程集成之后。这让我困惑了好几天。应用您的修复程序后,我的BDD测试开始正常工作。请注意,这是不推荐使用的waitForAngularEnabled
browser.ignoreSynchronization = true;
browser.ignoreSynchronization = false;