我正在尝试从列表中删除和Item,在应用程序中删除此元素需要很长时间,因此我想等到删除此元素,然后验证页面上是否存在此项目。
this.GroupList = element.all(by.repeater("Group in GroupList | orderBy: order"));
现在我根据名称getAttribute('aria-label')
从上面的列表中删除一个元素,如何使用ExpectedConditions.stalenessOf或ExpectedConditions.invisibilityOf等待从列表中删除一个元素。
答案 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));
});