我遇到了一个非常奇怪的问题。在第一次测试运行期间,我几乎总是收到这样的错误:
失败:等待量角器在50秒后与页面同步超时。请参阅https://github.com/angular/protractor/blob/master/docs/faq.md
它不依赖于测试内容,经过几次执行后,一切都开始正常工作。
我的规格: 量角器2.1.0 + Jasmine
这只发生在我的一个项目中,其他一切都很好。
browser.ignoreSynchronization = TRUE;在我的情况下不会工作,因为它是100%有角度的应用程序。
关于原因的任何想法?这真的很奇怪,因为它主要发生在第一轮。
我还增加了allScriptsTimeout:50000,但看起来没有帮助,也不是解决方案
我用
只要app在html标签上定义,就可以在我的配置中使用paramrootElement:' html'
答案 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 }