如果我在本地开发系统中运行它们,我的e2e测试运行正常。如果我针对我们的生产系统运行它们,那么在我执行browser.refresh()
之后,每个测试用例总是会出现以下错误:
Message:
Failed: Error while waiting for Protractor to sync with the page: "[ng:test] http://errors.angularjs.org/1.3.15/ng/test"
Stack:
Error: Failed: Error while waiting for Protractor to sync with the page: "[ng:test] http://errors.angularjs.org/1.3.15/ng/test"
at ...\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:102:16
at [object Object].promise.ControlFlow.runInFrame_ (...\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20)
at [object Object].promise.Callback_.goog.defineClass.notify (...\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2464:25)
at [object Object].promise.Promise.notify_ (...\ich\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:563:12)
有时,量角器甚至无法在登录后加载页面。量角器中的整个页面同步似乎非常不可靠。
唯一的特殊'在我的页面上的东西是我在div元素上手动引导角度,我在量角器conf中指定为根元素。正如我所说,测试对我的本地机器运行良好。
---编辑---
我认为值得一提的是我的baseUrl指向登录发生的www子域。登录后,客户端将被重定向到其他子域。重定向以js处理。我最近将browser.refresh()
更改为browser.driver.navigate().refresh()
,现在加载了当前网址但未解决问题。在我看来,量角器在重载时页面同步存在一些问题。