WebDriverManager を使って、Java で ChromeDriver を自動更新する方法を書いていきます。
※ FirefoxDriver や EdgeDriver も自動更新できるようです。
バージョン
ブログ執筆時の OS とバージョンは以下の通りです。
1. 自動更新の方法
pom.xml
に webdrivermanager
を追加します。
<project> ... <dependencies> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.3.0</version> </dependency> ... </dependencies> </project>
それから、Javaで以下のコードを実行します。
WebDriverManager.chromedriver().setup();
Seleniumを使うためのプロパティも自動で設定されます。
- キー:
webdriver.chrome.driver
- 値:ChromeDriver(exe)のパス
2. 自動更新の例
プロジェクト sample-webdriver-manager
で、自動更新をする例を記載します。
2.1. pom.xml の作成
以下の内容で作成します。
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample-webdriver-manager</artifactId> <version>0.0.1</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.3.0</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.5.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.36</version> </dependency> </dependencies> </project>
Selenium を使うために、selenium-java
を追加しています。また、WebDriverManager のログが出力されるように、slf4j-simple
を追加しています。
2.2. Java プログラムの作成
以下の Mainクラスを作成します。
src/main/java/org/sample/webdriver/manager/Main.java
package org.sample.webdriver.manager; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import io.github.bonigarcia.wdm.WebDriverManager; public class Main { public static void main(String[] args) { WebDriverManager.chromedriver().setup(); WebDriver driver = new ChromeDriver(); driver.get("https://www.google.com/"); driver.quit(); } }
下のように書くと、ドライバーをインストールして ChromeDriver
を返してくれます。
WebDriver driver = WebDriverManager.chromedriver().create();
3. ドライバーの保存場所
デフォルトだと、ドライバー(exe)は、ホームディレクトリの .cache\selenium
配下に保存されます。