失败:等待量角器与页面同步超时

时间:2015-07-16 11:03:42

标签: angularjs jasmine protractor angularjs-e2e e2e-testing

我遇到了一个非常奇怪的问题。在第一次测试运行期间,我几乎总是收到这样的错误:

  

失败:等待量角器在50秒后与页面同步超时。请参阅https://github.com/angular/protractor/blob/master/docs/faq.md

它不依赖于测试内容,经过几次执行后,一切都开始正常工作。

我的规格: 量角器2.1.0 + Jasmine

这只发生在我的一个项目中,其他一切都很好。

browser.ignoreSynchronization = TRUE;在我的情况下不会工作,因为它是100%有角度的应用程序。

关于原因的任何想法?这真的很奇怪,因为它主要发生在第一轮。

我还增加了allScriptsTimeout:50000,但看起来没有帮助,也不是解决方案

我用

  

rootElement:' html'

只要app在html标签上定义

,就可以在我的配置中使用param

2 个答案:

答案 0 :(得分:0)

您可以在browser.manage().timeouts().implicitlyWait(2000);

中尝试:onPrepare()

我将它用于我的混合应用程序,也许你角色的DOM部分需要一些时间来加载,它可能对你有帮助。

编辑:F ***评论编辑:)

我猜你可以使用beforeEach()函数破解它,或者在第一次测试中使用它,如果只发生这种情况,那将会是这样的:

dvr = browser.driver; 
browser.ignoreSynchronization = true;
dvr.wait(function() { 
    return browser.driver.isElementPresent(by.css('.ngscope')); }, 30000); //or any other angular element detection
browser.ignoreSynchronization = false;

另外我记得有时webdriver在开始时失去了浏览器窗口的焦点(我没有在量角器中看到过它,但它在我之前遇到过不同的框架),并且改变了浏览器的分辨率帮助browser.manage().window().setSize(1280, 1024);)< / p>

答案 1 :(得分:0)

我也遇到了同样的问题但是在增加了时间之后它对我有用了

allScriptsTimeout:72000,并尝试添加以下行

jasmineNodeOpts:{     isVerbose:是的,     includeStackTrace:是的,     showColors:是的,     defaultTimeoutInterval:72000   }