如何等待从列表中删除项目

时间:2017-08-07 17:31:07

标签: protractor

我正在尝试从列表中删除和Item,在应用程序中删除此元素需要很长时间,因此我想等到删除此元素,然后验证页面上是否存在此项目。

this.GroupList = element.all(by.repeater("Group in GroupList | orderBy: order"));

现在我根据名称getAttribute('aria-label')从上面的列表中删除一个元素,如何使用ExpectedConditions.stalenessOf或ExpectedConditions.invisibilityOf等待从列表中删除一个元素。

1 个答案:

答案 0 :(得分:1)

如果您有对此特定转发器项的引用,则可以使用stalenessOf Expected Condition,例如:

// page object
this.GroupList = element.all(by.repeater("Group in GroupList"));

// test
var itemToBeDeleted = pageObject.GroupList.get(5);

// delete an item here

browser.wait(EC.stalenessOf(itemToBeDeleted), 5000);

请注意,您不需要" orderBy"参与转发器定位器。

另一个想法是等待计数在自定义预期条件下减少一个:

function waitForCount(elementArrayFinder, count) {
    return function () {
        return elementArrayFinder.count(function (actualCount) {
            return actualCount === count;
        });
    };
}

用法:

pageObject.GroupList.count().then(function (countBefore) {
    // delete item here

    browser.wait(waitForCount(pageObject.GroupList, countBefore - 1)); 
});