2017-07-11 15 views
0

私はAngular Growl v2を使用しているアプリケーションを持っています。私の分度器テストでは、growlイベントが発生し、正しいテキストが含まれていることを確認します。だから私は、次のチェックがあります分度器と不要な待機

var expectGrowlMessage = function(text) { 
    var growl = element(by.css('.growl-message')); 
    # Protractor stops here until growl div is removed 
    browser.wait(EC.presenceOf(growl), 3004, 'Waiting for growl to appear'); 
    expect(growl.getText()).toContain(text); 
    browser.wait(EC.not(EC.presenceOf(growl)), 7002, 'Waiting for growl message to disappear'); 
}; 

私が言うことができる何(console.log経由)が起こっていること分度器がexpectGrowlMessageを入力してから最初のbrowser.wait前に停止しますです。ブラウザでは、最初の待機が成功するように唸りメッセージを見ることができます。 growl要素が削除されると、分裂器が最初の待機チェックに進み、明らかに失敗することになります。

私はbrowser.driver.waitbrowser.waitForAngular()を試してみましたが、どちらもうまくいかないようです。

投射器が何をしているのか、またそれを動作させる方法についての提案はありますか?

答えて

1

「その後」を使用することによって、あなたは物事をやりたい順序について特異的で試してみてください。

var expectGrowlMessage = function(text, timeout = 3004) { 
    var growl = element(by.css('.growl-message')); 
    var EC = protractor.ExpectedConditions; 
    browser.wait(EC.presenceOf(growl), timeout).then(function(){ 
     expect(growl.getText()).toContain(text); 
    }); 
});