问题描述:规范的方法来调试量角器对角同步问题
而在量角器终端到终端的测试中打开我们的应用程序的一个页面最近,我们得到这个臭名昭著的错误:
失败:超时等待异步Angular任务在50秒后完成。这可能是因为当前页面不是Angular应用程序。
这发生在我们的测试中的一个browser.get("/some/page/");
电话:
describe("Test", function() {
beforeEach(function() {
browser.get("/some/page/");
});
it("should test something", function() {
// ...
});
)};
而且,什么是奇怪我们的情况下,该错误没有任何其他网页在我们斜网抛出应用 - 量角器与Angular同步,没有任何问题。 ng-app
位置明智的事情是在所有页面的相同 - ng-app
是根html
标签定义:
<html class="ng-scope" lang="en-us" ng-app="myApp" ng-strict-di="">
的行为是一致的 - 我们每次导航到该页面browser.get()
时间,我们得到这个错误。任何时候我们导航到我们的应用程序中的任何其他页面,同步工作。
请注意,当然,我们可以关闭此页面的同步并将其视为非角度,但这只能视为解决方法。
的问题:
还有什么可以引起量角器对角同步失败?我们应该检查什么?
而且,一般来说,推荐使用哪种方法来调试量角器中的同步问题?
使用目前最新的Protractor 5.5.1,Angular 1.5.6。
我想这是同步问题。 '的https:// github.com /角度/量角器/斑点/主/文档/ timeouts.md#如何到禁用等待换angular'。他们告诉的解决方案与关闭同步或者可能使用'driver.browser.get()'而不是'browser.get()'相同。 –
@KishanPatel谢谢,但正如我在问题中提到的,我明白我们可以关闭同步并将页面视为非角度 - 这是一种解决方法,它会工作,但我们正在尝试找出为什么同步不适用于此特定页面和一般准则来调试此类问题。 – alecxe
你的错误清楚地表明它可以同步,因为Angular,并且有两个原因会发生'$ http'和'$ timeout' - 量角器将等待这两个服务完成。如果它是由'$ timeout'引起的,那么你应该简单地用'$ interval'替换它,而对于'$ http',除非你想写一个XHR服务并用它代替'$ http',否则没有解决方法。 – maurycy