WebDriverManager は、Selenium WebDriver に必要なドライバー (chromedriver、geckodriver、msedgedriver など) の管理 (ダウンロード、セットアップ、メンテナンスなど) を完全に自動化された方法で実行するオープンソース Java ライブラリです。さらに、WebDriverManager は、ローカル システムにインストールされているブラウザの検出、WebDriver オブジェクト ( ChromeDriver
、 FirefoxDriver
、 EdgeDriver
など) の構築、Docker コンテナ内でのブラウザのシームレスな実行など、他の関連機能も提供します。
バージョン 5 以降、WebDriverManager のドキュメントはここに移動しました。このサイトには、WebDriverManager のすべての機能、例、構成、および高度な機能が含まれています。
WebDriverManager の主な用途は、ドライバー管理の自動化です。この機能を使用するには、WebDriverManager API で特定のマネージャー (Chrome のchromedriver()
など) を選択し、メソッドsetup()
を呼び出す必要があります。次の例は、JUnit 5、Selenium WebDriver、および WebDriverManager を使用したテスト ケースのスケルトンを示しています。
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeAll ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import org . openqa . selenium . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeTest {
WebDriver driver ;
@ BeforeAll
static void setupAll () {
WebDriverManager . chromedriver (). setup ();
}
@ BeforeEach
void setup () {
driver = new ChromeDriver ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
あるいは、メソッドcreate()
使用してドライバーを自動的に管理し、 WebDriver
オブジェクトを 1 行でインスタンス化することもできます。たとえば、次のようになります。
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import org . openqa . selenium . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeCreateTest {
WebDriver driver ;
@ BeforeEach
void setup () {
driver = WebDriverManager . chromedriver (). create ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
WebDriverManager によって実装されるドライバー解決アルゴリズムと構成機能の詳細については、ドキュメントを参照してください。
WebDriverManager 5 で利用できるもう 1 つの関連する新機能は、すぐに使える Docker コンテナー内にブラウザーを作成できる機能です。この機能を使用するには、テストを実行するマシンに Docker エンジンがインストールされている必要があります。これを使用するには、特定のマネージャーのcreate()
と組み合わせてメソッドbrowserInDocker()
を呼び出す必要があります。このようにして、WebDriverManager は Docker Hub からイメージを取得し、コンテナーを起動し、それを使用するために WebDriver オブジェクトをインスタンス化します。次のテストは、Docker で Chrome を使用する簡単な例を示しています。この例では、noVNC を使用したブラウザ セッションとリモート アクセスの記録も有効にします。
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class DockerChromeVncTest {
WebDriver driver ;
WebDriverManager wdm = WebDriverManager . chromedriver (). browserInDocker ()
. enableVnc (). enableRecording ();
@ BeforeEach
void setup () {
driver = wdm . create ();
}
@ AfterEach
void teardown () {
wdm . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
WebDriverManager は、オープンで透明なコミュニティのためのオンライン資金調達プラットフォームである OpenCollective の一部です。後援者 (個人の寄付または定期的な寄付) またはスポンサー (企業による定期的な寄付) として寄付することで、プロジェクトをサポートできます。
あるいは、コーヒーをおごって私の仕事に感謝することもできます。
WebDriverManager (著作権 © 2015-2024) は、Boni Garcia によって作成および保守され、Apache 2.0 ライセンスの条件に基づいてライセンス供与されたプロジェクトです。