Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

Selenium JavaでWebDriverを自動更新する方法(WebDriverManager)

WebDriverManager を使って、Java で ChromeDriver を自動更新する方法を書いていきます。

※ FirefoxDriver や EdgeDriver も自動更新できるようです。

バージョン

ブログ執筆時の OS とバージョンは以下の通りです。

1. 自動更新の方法

pom.xmlwebdrivermanager を追加します。

<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 配下に保存されます。

参考文献

WebDriverManager - GitHub