2017-01-24 8 views
1

ログインページのスピナーを処理するのにbrowser.waitを使用していますが、実際には3番目のパラメーターとして渡したすべての時間を実際に待っています。分度器の明示的な待機が機能していません

20分待ってから15分後にホームページが表示されたら、次のテストケースに進む必要があります。誰でもここで助けてください。

it('test case', function() { 
     loginPage.login(browser.params.Login.username, browser.params.Login.password); 
     browser.wait(function() { 
     loginPage.Spinner().then(function(presenceOfElement) { 
      logger.info('App is waiting for spinner to complete'+ presenceOfElement); 
      return !presenceOfElement 
     }, 20*60*1000); 
     }); 
    }); 
+1

あなたはスピナーがディスパーになるのを待っていると仮定します - 予想されない条件で試しましたか? http://www.protractortestore/#/api?view=ProtractorExpectedConditions.prototype.invisibilityOf。 – Grasshopper

+0

'Spinner()'関数を投稿できますか? Promiseを解決していないようです。つまり、私はここで読んでいます。http://www.protractort.org/#/api?view=webdriver.WebDriver.prototype.wait –

+0

@ bob.mazzoここで私のページオブジェクト機能です。 this.Spinner =要素(by.tagName( 'a')); this.Spinner = function(){ return browser.isElementPresent(this.Spinner); }; – tyaga001

答えて

0

ページオブジェクトとテストを書き直して、テストで何が起こっているのかを明確にすることをお勧めします。これを試してみてください:

// loginPage page object 
this.getSpinner = function() { 
    return element(by.tagName('a')); 
}; 

// test 
browser.wait(function() { 
    return loginPage.getSpinner().isPresent().then(function (isSpinnerPresent) { 
     return !isSpinnerPresent; 
    )}; 
}, 20*60*1000); 
+0

と同様の結果が得られた。テストケースが20分を待っている場合でもログインスピナーが5分以内に移動する – tyaga001

+0

あなたのスピナー要素は隠されていませんが、5分後にはまだDOMに存在していますか?その場合は、isPresent()の代わりに 'isDisplayed()'をテストする必要があります。 – finspin

+0

私はロガーを入れて&falseを返すので、ログイン要素は非表示ではありません。 ロガー結果 - downloadtrue [2017-01-25 09:58:29.883] [INFO] [デフォルト] - アプリケーションが初期コンテンツのダウンロードを待機中です.false [2017-01-25 09:59:06.659]デフォルト] - アプリケーションが初期のコンテンツを待っています – tyaga001

関連する問題