我已经编写了这个测试,但浏览器在查找元素之前不会等待20秒。它会忽略该部分,只等待默认的11秒。我的代码有问题吗?
it('should navigate to Home tab', function() {
element(by.css('[ui-sref="main.home"]')).click();
var telematicsSection = element(by.id('teleMap'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(telematicsSection), 20000);
});
这是我遇到的错误
失败:等待异步Angular任务在11秒后完成超时。这可能是因为当前页面不是Angular应用程序。有关详细信息,请参阅常见问题解答:https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular 在等待带定位符的元素时 - Locator:By(css selector,* [id =" teleMap"])。
@edit
我设法解决了这个问题。 Yash Jagdale的代码和
在conf.js中的allScriptsTimeout:20000
使它成功。
答案 0 :(得分:0)
您可以使用以下方式正确处理异步循环
it('should navigate to Home tab', function(callback) {
element(by.css('[ui-sref="main.home"]')).click().then(function() {
var telematicsSection = element(by.id('teleMap'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(telematicsSection), 20000).then(function() {
callback();
});
});
}, 40000);
答案 1 :(得分:0)
在量角器conf.js的browser.ignoreSynchronization = true;
中添加onPrepare
onPrepare: function() {
browser.ignoreSynchronization = true;