2016-09-21 12 views
0

他の人がこの質問をしましたが、いくつかの回答がありますが、それは一瞬を明確にしていません。暗黙の待機は、要素がすぐに見つからない場合に指定された時間だけ待機し、指定された時間待機した後にエラーを実行します。暗黙の待機が要素の最初の秒をチェックし、指定された時刻を待って最後の秒にもう一度チェックすることを意味しますか?Selenium Webdriver Python - 暗黙の待機がわかりません

私は、明示的にDOMを500msごとにポーリングすることを知っています。テストに時間がかかる場合、暗黙待ちの実際の使用は何ですか?

答えて

2

暗黙の待機は、セレンの内部にあります。初期化中は一度設定します。次に、Webドライバが要素を探すたびに、暗黙的な待機タイマが満了するまで、elmemtが(ポーリングを伴って)存在を継続的に探します。要素が見つかった場合は実行を再開し、そうでない場合はNoSuchElement例外をスローします。それで、それは最初の秒にwaitループから出てきます。それが最後の秒に要素を見つけなかったら例外をスローします。

Explicit Wait特定の条件がTrueであるのを待つ必要があるシナリオで使用されます。例えば、要素の可視性など。その範囲は、その特定のコールに対してのみ制限されています。

詳しくはSelenium documentationをご覧ください。

0

DOMに要素が表示されるまで暗黙の待機ドライバ待機が発生するが、同時にその要素が使用可能であることを保証するものではありません。ボタンのクリックのように、要素を使用することができないか、その時点で要素の形状が定義されていない可能性があります。

セレンを使用している限り、ページのすべての要素には興味がありません。すべての要素は形状が均一ではないかもしれませんが、DOM内のすべての要素が存在することは、他の要素が正しく機能するために重要です。暗黙の待機。

要素を使用する場合、明示的な待機(WebDriverwait)またはFluentWaitを使用します。

関連する問題