Selenium WebDriver では暗黙的な待機ではなく明示的な待機を使用する必要がありますか?

Patricia Arquette
リリース: 2024-11-23 02:10:10
オリジナル
128 人が閲覧しました

Should I Use Explicit Waits Instead of Implicit Waits in Selenium WebDriver?

Selenium Webdriver の明示的待機と暗黙的待機

質問:

Selenium の暗黙的待機を使用しているにもかかわらず待ってください、特定の要素が検出されないままになっています。代わりに明示的な待機を使用することをお勧めしますか?

回答:

はい、暗黙的な待機ではなく常に明示的な待機を使用することを強くお勧めします。

暗黙的と明示的待機

明示的な待機:

  • 明確に定義され文書化された動作
  • プログラミング言語のコンテキストでローカルに実行
  • あらゆる条件に適用可能
  • 結果は以下の通り成功またはタイムアウト エラーのいずれか
  • 要素が存在しない条件を成功として定義できます
  • 再試行と例外の間の遅延を無視するようにカスタマイズ可能

暗黙的な待機:

  • 行動が曖昧で不適切文書化されています
  • ブラウザのコントロール内でリモートで実行されます
  • 「要素の検索」メソッドに限定されます
  • 見つかった要素または見つからなかった要素を返します(タイムアウト後)
  • できませんグローバルタイムアウトを超えてカスタマイズ可能

の利点明示的な待機

  • 待機できる条件の柔軟性が向上
  • カスタマイズされたタイムアウトと例外処理
  • 期待値が定義された明示的で明確なコード

例コード

暗黙的待機:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
ログイン後にコピー

明示的待機:

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement myDynamicElement = wait.until(
  ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));
ログイン後にコピー

結論

暗黙的wait では機能が制限され、動作が信頼できません。対照的に、明示的な待機は、動的な Web サイトのテストのための包括的でカスタマイズ可能なソリューションを提供します。これらの利点は、コードがわずかに長くなるという唯一の欠点をはるかに上回ります。したがって、信頼性が高く保守可能な自動テストのために明示的な待機のみを使用することをお勧めします。

以上がSelenium WebDriver では暗黙的な待機ではなく明示的な待機を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート