有很多关于Error while waiting for Protractor to sync with the page
的帖子,但我认为这是不同的。
设定:
我在页面上有一个带有角度的表单。表单执行POST,它也会使用angular重定向到另一个页面(让我们称之为提交页面)。提交是通过element().click()
触发提交后,我发现间歇性Error while waiting for Protractor to sync with the page
问题。不是每次,也许是1/4的时间。
编辑:相关测试代码
// fill out form
element(by.css('.submit-btn')).click()
browser.wait(waitForUrl(), 5000)
// errors somewhere around here
expect(element(by.css('h1')).getText()).toMatch('Form submitted')
// errors somewhere around here
function waitForUrl() {
return browser.getCurrentUrl().then(function(url) {
return /submitted/.test(url)
})
}
在挖掘之后,我认为存在竞争条件,因为在提交页面上加载角度之前会运行一些测试操作。
我试过browser.waitForAngular()
无济于事。 browser.ignoreSynchronization
有效,但由于提交页面上有角度,因此这并不理想。我真的希望browser.waitForAngular()
会做它看起来应该做的事情 - 等待加载角度,但似乎不这样做,除非我做错了。