我正在天真地进行e2e测试。该网站的前两页是无角度的,所以我使用driver.findelement来获取它们,忽略同步设置为true:
it('should go to login page on pressing button',function(){
driver.get('http://localhost:54080/');
driver.findElement(by.id('loginButton')).click();
expect(driver.getCurrentUrl()).toContain('Account/Login');
});
等等。然而,在到达angular-ish部分(并且不再忽略同步)时,我希望能够使用量角器选择器,例如模型。
ptor.findElement(protractor.By.model('item.Title'))
我找到了一个同步错误:
Error while waiting for Protractor to sync with the page: {...
我已经尝试了很多东西,而且我在测试时间方面做的很少,它主要以模糊的功能风格编写。我没有轮询任何东西,所以它应该相当简单,我几乎确信它是一个时间或同步问题,脱离了大多数文档的一般风格。
答案 0 :(得分:0)
在进行下一次测试之前,量角器正在等待所有AngularJS $超时和$ http调用完成。默认情况下,它在11秒后超时(任意,我知道)。如果您使用$ timeout进行轮询,或者在首次加载页面时进行大量的$ http调用,则很容易达到此限制。
我解决问题的方法是将量角器配置中的allScriptsTimeout
属性增加到30000
(30秒)。