我想使用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
useAllAngular2AppRoots: true,
}
Chrome 被打开,网站也被打开,然后什么也没发生,直到超时。
禁用同步时(使用browser . ignore synchron ization = true;),就可以了。但是我正在失去“自动等待”的功能,这是使用量角器的主要优势之一。
应用程序完全基于角度2。那么为什么这不起作用呢?
我们的开发人员告诉我,我们没有轮询(根据量角器文档的可能原因之一)。顺便说一下,我们正在使用websocket架构。我不知道是否有链接。
实际上,我根本不知道如何解决这个问题。
有人能帮忙吗?
修改测试用例并放入browser.waitForAngularEnabled(false)
在第一次单击后,应该可以工作。
但是,推荐的方法可以覆盖 conf.js
文件中的默认超时,因为 allScriptsTimeout:110000
暂时启用browser.ignoreSynchronization会修复它,如这里的答案所述。
browser.ignoreSynchronization = true;
(引发错误的代码)
browser.ignoreSynchronization = false;
你的猜测是对的。当 angular2 应用程序中有任何未完成的任务运行时,会发生此错误。
是的,最常见的原因是当应用程序持续轮询$timeout或$http时,Protractor将无限期等待并超时。但这也可能发生在应用程序耗时超过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;
所以我在Angular中开发了一个新组件,在ngOninit中我有以下异步函数。。。 这getUserProfile需要完成才能调用它。getPrivateGroup()和这个。需要先完成getPrivateGroup(),然后才能调用此函数。loadGroupPosts()。我知道我可以在异步请求的回调中编写这些函数,但我想知道是否有一种方法可以将它保存在ngOnInit中以保持其更干净? 有人
我通读了Dart/flatter中的Async/Await/then,试图理解为什么aysnc函数中的Await不会等到完成后再继续。在我的UI中,有一个按钮调用一个异步方法来返回一个位置,该位置总是返回null,并且不等待函数完成。 该函数将调用推送到一个新的UI页面,该页面选择一个位置,并应返回一个结果。如何使该函数等待结果?我不是在使用异步吗?
问题内容: 我使用Node.js和TypeScript,并且使用。这是我的测试用例: 我想为整个功能设置一个超时时间。即如果要花费2秒,花费0.5秒,花费5秒,我想在3秒钟后让我抛出错误的超时。 正常调用是一个问题,因为范围丢失了: 而且我不能用普通的方式抓住它: 有关如何解决的任何想法? 问题答案: 您可以使用超时: 您必须将其包装在诺言中才能使用。
问题内容: 如何让我的代码等待,直到DispatchQueue中的任务完成?是否需要任何CompletionHandler或其他东西? 我正在使用Xcode 8.2并在Swift 3中编写。 问题答案: 使用s可以实现这一点。您可以在群组和通话达到平衡时得到通知: 或者您可以等待: 注意 :阻止当前队列(在您的情况下可能是主队列),因此您必须在另一个队列上(如上面的示例代码中)以避免 死锁 。
给出一些关于我正在尝试做的细节:我正在用Java制作一个Minecraft插件。我有一个对象,它使用HashMap绑定到Minecraft的Player对象。 我在这个对象中有一个方法,类似于: 显然,会有很多事情发生,所以我希望这是异步发生的。计时器将在后台继续,它不会阻止代码中的任何其他内容。 对不起,如果我的问题太简单了,但我真的检查了网络和我是新的Java,所以原谅我的无知。
问题内容: 我不确定如何处理这种情况,因为我是iOS开发和Swift的新手。我正在像这样执行数据获取: 我的loadShows()函数解析从加载到UIWebView的网站中获取的大量数据。问题是我在loadShows函数中有一个等待10秒钟左右的计时器。这允许页面中的javascript在开始解析数据之前完全加载。我的问题是完成处理程序在我的loadShows()之前完成。 我想做的是为“ isC
问题内容: 我知道这个问题以前曾被问过,但是所有解决方案都不适合我。 我有一个将参数发送到API的函数,并以列表的形式返回数据。我有一个UITableView设置为使用该列表,但是它在列表分配给变量之前运行。 码: 如果不立即将其作为重复投票,我将不胜感激,这是我尝试的方法。 派遣组 信号量计时 运行变量 其中包括= self和= self 。 编辑:要求提取项目, 问题答案: 您不能-也不应该-
问题内容: 嗨,我的脚本中有2个Ajax调用,我需要它们运行asnyc以节省时间,但是我需要第二个才能等待第一个完成。 有什么想法吗?谢谢 问题答案: 如果使用jQuery 1.5+,则可以使用jQuery 完成。诸如此类的东西(缩短了ajax的简洁性,只需像上面那样传递对象) 您不知道它们将以什么顺序返回,因此,如果您手动滚动此请求,则需要检查另一个请求的状态并等待它返回。