Protractor: 分度器browser.sleep()が実行されていません。

作成日 2016年07月01日  ·  3コメント  ·  ソース: angular/protractor

以下では、クライアントがXYZの場合、browser.sleepが実行されることになっていることがわかりますが、それでも実行されていません。 browser.sleepステートメントの後にconsole.logを置くと、そのステートメントは実行されます(ステートメントを確認できます)が、スリープ時間がどれだけ長くなっても、browser.sleepは実際には待機していません。

browser.sleepが機能しないのはなぜですか? クライアントがXYZの場合、どうすれば待機させることができますか?

           if (testproperties.client == 'ABC'){
                browser.ignoreSynchronization = false;
                browser.waitForAngular();
                browser.ignoreSynchronization = true;    
            }
            else if (testproperties.client == 'XYZ'){
                browser.sleep('35000');
            };

最も参考になるコメント

@ gamecheck80は、中の一重引用符を削除します

// use like this
browser.sleep(35000);

全てのコメント3件

@ gamecheck80は、中の一重引用符を削除します

// use like this
browser.sleep(35000);

明確にするために本当に迅速です:browser.sleepはpromiseを返します。 これを詳しく調べます。

  • browser.sleepはwebdriver.sleepを呼び出します
  • webdriver.sleepは、制御フローがタイムアウトを実行するように要求します
  • timeoutはdelayを呼び出し、delayは最終的にsetTimeoutメソッドを呼び出します。これは、文字列が数値である限り、文字列である可能性があります。

browser.sleep( '35000')は受け入れ可能な入力です。

browser.sleepはpromiseを返すため、promiseが終了するのを待つ場合にのみ機能するように見えます。

describe('browser', function() {
  it('should sleep', function() {
    browser.get('http://angularjs.org');

    // does not work
    // browser.sleep(10000);
    // console.log('waited 10 seconds?');
    // this does not work and "waited 10 seconds?" appears immediately after navigating

    // after sleeping then print "waited 10 seconds"
    browser.sleep(10000).then(function() {
      console.log('waited 10 seconds');
    });
  });
});

うまくいけば、これが役立つでしょう。 さらにヘルプが必要な場合は、 StackOverflowGoogleグループディスカッションリスト、またはGitterでサポートの質問をしてください。 詳細については、 https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questionsを参照して

ありがとうございました!

browser.sleep(10000).then(function(){
console.log('10秒待機 ');
});
Angular 6と分度器バージョン5.4.1でこれを使用しても機能しません、少なくともそれは私が見ているものです

このページは役に立ちましたか?
0 / 5 - 0 評価