2017-01-18 14 views
0

ロードバーを持つログインページをテストしています。 私のシナリオでは、ユーザーが「ログイン」ボタンをクリックしたときにロードバーが表示されるかどうかをテストする必要があります。 テストフローのために以下の関数を作成しましたが、常にタイムアウトのエラーで失敗します。分度器:ロードバーをテストする方法

isLoadBarDisplayed: function() { 
    var thePage = this.page;  
    thePage.userNameField.sendKeys(randVal); 
    thePage.passwordField.sendKeys(randVal); 

    browser.ignoreSynchronization = true; 
    thePage.LoginBtn.submit() 

    var EC = protractor.ExpectedConditions; 
    browser.wait(EC.visibilityOf(thePage.loadBar), 5000, false); 

    browser.ignoreSynchronization = false; 
}, 

別のコードでは、常にfalseをもたらし:

....... 
    browser.ignoreSynchronization = true; 
    return thePage.LoginBtn.click().then(function(){ 
     return thePage.loadBar.isDisplayed() 
    }) 

    browser.ignoreSynchronization = false; 
} 

すべてのアイデアは大歓迎です! 事前に感謝します

+0

あなたの 'loadBar'ロケータは正しいですか? – alecxe

+0

私は "elementor"で短い調査をしました: これはロードバーのフルタグです: です。 要素(by.css( '[ng-show = "loading"]')) 資格情報が読み込まれ、ロードバーが画面に表示されると、属性は消えていますが、isDisplayed()コマンドはまだ偽の値を返します 何が間違っていますか? – Nadin

+0

ええ、間違いなく同期をオフにする必要があるように聞こえますが、ブラウザが早期にオフにならないように 'browser.ignoreSynchronization = false;'を 'afterEach()'に移動できますか? – alecxe

答えて

0

上記の問題を解決する別の方法を知るために、上記のコメントを参照してください。私の場合、次のコード部分は正しく動作します:

​​
関連する問題