なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

Seleniumにおける待ち合わせの概念

Selenium

  • このページの重要な点を翻訳

stackoverflow.com

Implicit Wait(暗黙的待ち合わせ)

  • 暗黙的待ち合わせはウェブドライバーのインスタンスにHTML DOMの要素を見つけたり、要素のグループやコレクションを見つけたりする時に即時利用可能でない場合の待ち合わせの設定をする方法です(※CSSセレクタXpathを実行した際に、要素が出るまで待ってくれる)
  • W3Cの規定によればデフォルト値は0
  • 必要に応じてプログラムのどこからでも設定値を変えられる
  • その設定値はWebdriverのインスタンスの生成から廃棄までの間有効

Explicit Wait(明示的待ち合わせ)

  • 明示的待ち合わせは、コードを実行する前に特定の状態になるまでWebdriverのインスタンスのために設定、実装されるコードのこと
  • WebDriverWaitとExpectedConditionで定義される特定のメソッドと状態は明示的待ち合わせを実装するための一つの手法です

要は

  • この話に従えば、暗黙的待ち合わせさえ設定していれば明示的に待ち合わせる必要ないように見える。しかし実際にはAjaxリクエストを待つときに明示的待ち合わせを書く必要があったりするので例外はあると言える。
  • ちなみにSelenideはデフォルトで4秒の暗黙的待ち合わせになっている

Selenide - Concise UI Tests in Java