2017-02-07 4 views
0

私は非角のページから始め、browser.findElementでボタンをクリックします。ページが完全に読み込まれる前に分度器で要素を確認するにはどうすればよいですか?

要素をクリックすると、ページの読み込みが完了するまでスピナーを持つ角ページが表示されます。次のコードを使用して、分度器はページを完全に読み込むのを待ってから、以下を実行します。最初のボタンがクリックされるとすぐにページビジーインジケーターのチェックを開始します。スピナーはもはやアクティブではない。

browser.wait(function(){ 
    element(by.className('page-busy-indicator')).getAttribute('class').then(function(value){ 
    console.log(value); 
    if(value.indexOf('active')>-1){ 
     return true; 
    } 
    }); 
}); 
+1

'browser.wait()'の前に 'browser.ignoreSynchronization = true;'を入れてみましたか? – finspin

+0

私は無意味な場所にignoreSynchronizationとwaitForAngularEnabledを試みました。 – jdgower

+1

'var EC = protractor.ExpectedConditions; browser.wait(EC.stalenessOf($( '。page-busy-indicator'))、5000); ' – Barney

答えて

0

finspinとBarneyのおかげで、正しい方向に私を指摘しました。結局、私はwaitForAngularEnabledをオフにしてから、Barneyが言及したものとは正反対のもの(presenceOf)を使用する必要がありました。申し訳ありませんが、私はそれを言葉のために質問が混乱していた場合。再度、感謝します!

これは、.page-busy-indicator.activeの時計を設定し、タイムアウトするまでに5秒間探していることに注意してください。

browser.waitForAngularEnabled(false); 
browser.wait(protractor.ExpectedConditions.presenceOf(element(by.css('.page-busy-indicator.active'))), 5000); 
関連する問題