Panel Property Page:
this.IncList = element.all(by.repeater('list in $ctrl.all track by list.guid'));
等待列表显示的功能:
exports.WaitUntilListDisplaye = function(){
browser.wait(function(){
Panel.IncList.isDisplayed();
},10000);
};
如果我在测试中使用此功能等待列表的所有项目显示,则每次都超时。有没有办法等到显示ng-repeat的所有元素。
答案 0 :(得分:2)
你不会从等待函数中返回任何内容 - 因此条件总是“假的”并且你得到超时异常:
exports.WaitUntilListDisplayed = function(){
browser.wait(function() {
return Panel.List.isDisplayed();
}, 10000);
};
请注意,您显示的页面对象字段名为IncList
,但您在预期条件内使用List
。
此外,您可以使用by.exactRepeater
并省略“track by”部分:
this.IncList = element.all(by.exactRepeater('list in $ctrl.all'));
答案 1 :(得分:1)
由于Panel.List
返回多个元素,您需要返回一个Promise,评估false
返回的数组中没有isDisplayed()
:
browser.wait(function(){
return Panel.List.isDisplayed().then(results => results.indexOf(false) == -1);
}, 5000, "some elements are not visible");