8

私の AngularJS アプリケーションでは、ページをロードするために、最初にページのコンテンツをロードし、次にいくつかのバックエンド リソースをロードする 2 つの要素があります。バックエンド リソースの読み込み中は、スピナーが前面に表示され、ユーザーはページ コンテンツに対して何もできません。

Protractorを使用してアプリケーションの自動化テスト スイートを作成しているときに、テストを開始する前にスピナーが画面から消えるのを待つという手法を見つけることができません。

これで私を助けてください。

4

3 に答える 3

11

IsDisplayed as you mentioned in Andres D's comment should be the right one to use for your situation. However, it returns a promise so you cant just use

return !$('.spinner').isDisplayed()

since that will just always return false.

Try the below and see if it works.

browser.wait(function() {
  return $('.spinner').isDisplayed().then(function(result){return !result});
}, 20000);
于 2014-01-15T04:37:31.413 に答える
2

何かが起こるのを待っている場合は、使用できますbrowsser.wait()

たとえば、スピナーのクラス名が「spinner」の場合

browser.wait(function() {
  // return a boolean here. Wait for spinner to be gone.
  return !browser.isElementPresent(by.css(".spinner"));
}, 20000);

20000 はミリ秒単位のタイムアウトです。

条件が満たされるまで、テストは待機します。

于 2014-01-07T17:36:15.433 に答える