以下では、クライアントが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);
明確にするために本当に迅速です:browser.sleepはpromiseを返します。 これを詳しく調べます。
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');
});
});
});
うまくいけば、これが役立つでしょう。 さらにヘルプが必要な場合は、 StackOverflow 、 Googleグループディスカッションリスト、またはGitterでサポートの質問をしてください。 詳細については、 https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questionsを参照して
ありがとうございました!
browser.sleep(10000).then(function(){
console.log('10秒待機 ');
});
Angular 6と分度器バージョン5.4.1でこれを使用しても機能しません、少なくともそれは私が見ているものです
最も参考になるコメント
@ gamecheck80は、中の一重引用符を削除します