[英]How to wait for all elements of ng-repeat to be displayed
面板属性页:
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的所有元素都显示出来。
您不会从wait函数内部返回任何内容 -因此条件始终为“ falsy”,并且会出现超时异常:
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'));
由于Panel.List
返回多个元素,因此您需要返回一个Promise,以评估isDisplayed()
返回的数组中没有false
:
browser.wait(function(){
return Panel.List.isDisplayed().then(results => results.indexOf(false) == -1);
}, 5000, "some elements are not visible");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.