2017-08-07 10 views
1

リストからアイテムを削除しようとしていますが、このエレメントを削除するにはアプリケーションで時間がかかるので、このエレメントが削除されるまで待ってから、アイテムがページに存在しません。アイテムがリストから削除されるのを待つ方法

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

今私は私がリストから1つの要素をDOMから削除されるまで待つExpectedConditions.stalenessOf OR ExpectedConditions.invisibilityOfを使用することができますどのように、その名前getAttribute('aria-label')に基づいて上記のリストから要素を削除します。あなたは、この特定のリピーターアイテムへの参照を持っている場合は

答えて

1

、あなたは、例えば、stalenessOf Expected Conditionを使用することができます:あなたがリピーターロケータで「ORDERBY」の部分を必要としない

// 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); 

注意を。私はそのを使用し、この要素を識別して削除する

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

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

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

使用法:もう一つのアイデアが期待カスタム条件で1ずつ減少し、カウントを待つだろう


名前を付けて削除します。この要素を特定するには、どのように想定条件を使用できますか。 { return.toUpperCase(){ を返します。{return35.getAttribute( 'aria-label')} )=== displayName.toUpperCase(); }); }})(function(filteredElements){ filteredElements [0] .click(); }); this.DeleteBtn.click(); this.DeleteConf.click(); }; ' – ssharma

+0

@ssharma私は、あなたが' stalenessOf'に渡すことができる 'ElementFinder'を' DeleteGroupByDisplayName'が返す 'then()'から 'filteredElements [0]'を返すべきだと思います。 – alecxe

+0

Thanks @ alecxeこれは働いた。 – ssharma

関連する問題