2017-11-12 3 views
0

私はsortable columnsのテーブルを持っています。並べ替えの列をクリックすると、並べ替えが完了するまで待つ必要があります。テーブルのデータ変更を検出するために、現在のテキストを変数に保存してから 分度器でテキストの変更を待つ

td最初
waitForTDValueChange(currentValue: string, index: number): void { 
    browser.wait(
     () => element.all(by.css('td[data-header="HEADERNAME"]')) 
     .get(index) 
     .getText() 
     .then((txt) => { 
      return txt !== currentValue; 
     }), 30000); 
} 

の新しいテキストにbrowser.waitに比較し、ここに私のコードですが、それはStale Element Reference Exception .. 任意のアイデアを投げますか?

答えて

0

多分locator cssContainingText()Expected Condition stalenessOfまたはcheck for indexOf !== 0と一緒に使用できます。

このような何か:

var EC = protractor.ExpectedConditions; 
//or "global.EC = protractor.ExpectedConditions;" in conf.js to have it globally available 
waitForTDValueChange = function(currentValue, index){ 
    var list = element.all(by.css('td[data-header="HEADERNAME"]')); 
    var el = element(by.cssContainingText('td[data-header="HEADERNAME"]', currentValue)) 
    //idea 1 - not sure, if it only works, when el disappears, so position change might not be sufficient 
    browser.wait(EC.stalenessOf(el), 5000); 
    //idea 2 - get index of current element until it's not on index = 0 anymore 
    browser.wait(list.indexOf(el) !== 0, 5000); 
}; 
関連する問題