繁体   English   中英

如何等待ng-repeat的所有元素显示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM