2016-12-21 6 views
0

私はテストを書くことのJavaセレンを使用しています。私のテストで何度も何度もページやその一部が何かをロードするまで待たなければなりません。荷物が終わるまで待っていたい。私はこれらの2つを見つけました:何までテストを停止して待機はもうウェブページで起こっている

1) pageLoadTimeout 
2) setScriptTimeout 

しかし私はそれらの正確な違いは、私が必要なものであるかどうかは分かりません。

setScriptTimeout: Sets the amount of time to wait for an asynchronous script to finish execution before throwing an error. If the timeout is negative, then the script will be allowed to run indefinitely.

pageLoadTimeout: Sets the amount of time to wait for a page load to complete before throwing an error. If the timeout is negative, page loads can be indefinite.

を、私は本当にそれを取得しないでください: 文書は述べています。

私が必要とするのは、Webページで何も起こっていない限り、テストを中止することです。

+0

@ルイスあなたは答えをお願いしますか? –

答えて

3

「ウェブページで何も起こっていません」と定義します。これまでに作成されたすべてのWebページ、または作成されるWebページを満たすような方法で定義します。あなたの定義には、もはやネットワークトラフィックが電線にかからないことが含まれていましたか?あなたの定義には、onloadイベントが発生したことが含まれていましたか? document.readyStateは "complete?"という意味の値を返すのはどうですか? JavaScriptの実行を考慮しましたか? window.setTimeout()を使用してJavaScriptをスケジュールするのはどうですか? WebSocket?サービスワーカー? <frame>または要素はどうですか?

ここで、WebDriverには「ページが完了するのを待つ」タイプの待機がない理由が分かります。上記の項目は、「ページ上で何も起こっていません」という定義で、ユーザーが正当に使用できるもののリストの表面を傷つけることさえしません。正しい方法は、次のページで対話したい要素がDOMで利用可能になるのを待つことです。 WebDriverWaitクラスは、これに適しています。

+0

私はちょうど同じことを望んでいたテストスラックグループで20年以上の経験を持つシニアQAの男性とのやりとりをしていました。私は待っている戦略がどこに来るのかを説明しました。 /怠惰な "方法と緩やかなチャネルを残しました。 – codemon

+0

@ farm-commandこれは受け入れられる回答でなければなりません。 – codemon

関連する問題