Angular分度器を使用して記述されたE2Eテストをゆっくり実行して、何が起こっているかを見ることができますか?
以下はそのための私の解決策です。したがって、基本的に、現在の制御フローexecute
関数のデコレーターを作成しました。これは、各キューアクションの前に100ミリ秒の遅延を追加でキューします。
これは、テストを呼び出す前に実行する必要があります(describe
ブロック外)
var origFn = browser.driver.controlFlow().execute;
browser.driver.controlFlow().execute = function() {
var args = arguments;
// queue 100ms wait
origFn.call(browser.driver.controlFlow(), function() {
return protractor.promise.delayed(100);
});
return origFn.apply(browser.driver.controlFlow(), args);
};
ジョージ・ストッカーがコメントで言ったように、なぜあなたがこれをしたいのかわかりません...しかし、あなたはあなたのテストでどこでも好きなところにいつでも睡眠を加えることができます。
browser.sleep(6000);
コードにコマンドを配置することにより、「デバッグモード」に入ることができます。
_browser.pause();
_
デバッグモードでは、ターミナルに次の出力が表示されます。
_------- WebDriver Debugger -------
ready
press c to continue to the next webdriver command
press d to continue to the next debugger statement
type "repl" to enter interactive mode
type "exit" to break out of interactive mode
press ^C to exit
_
その後、次のことができます。
c
と入力してコマンドごとにコマンドを実行しますd
と入力して、次のデバッガーステートメント(次のbrowser.pause()
)に進みます。repl
を入力して、すべての要素と対話できる対話モードに入ります。以前の回答は回避策のように見えます。別の方法は、Protractor configにparamを追加することです:
highlightDelay: 1000
そして次のように変更します:
directConnect: false
クリックや入力などの分度器のアクションが1秒間遅延し、水色で強調表示されます。