12

Selenium によると、暗黙の待機は、要素が表示されるかどうかを確認するために一定時間 DOM をポーリングします。私の理解では、指定された時間までポーリングされますが、要素が前に表示された場合、それ以上待たずに続行されます。

http://seleniumhq.org/docs/04_webdriver_advanced.html

約13秒で実行されるメソッドがあります。暗黙の待機を 100 秒に設定すると、213 秒かかります。

driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);

この方法では、2 回 (それぞれ 100 秒) 待機しているようです。暗黙の待機を 0 または 100 に設定しても、メソッドには影響しません。どちらの場合も、正しく終了します。

私の質問はこれです。暗黙の待機は、要素が表示されるまでの最短時間を待機すると思いました。これは正しいですか?それとも私は何か間違ったことをしていますか?

さらに、明らかに待つ必要がないのに、なぜ2回待っているのですか? (wait を 0 に設定しても、私のメソッドは正しく終了します)

4

1 に答える 1

8

簡潔な答え:

暗黙の待機 - すべての要素に適用可能なグローバル設定であり、指定された時間よりも前に要素が表示された場合、スクリプトの実行が開始されます。それ以外の場合、スクリプトはスローしNoSuchElementExceptionます。セットアップ方法で使用する最良の方法。にのみ影響しBy.findelement()ます。

Thread.sleep()- スクリプトのスリープ時間になります。無条件でスリープするため、スクリプトでの使用には適していません。

于 2012-12-21T06:43:27.343 に答える