Selenium WebDriverを使用したWebテスト自動化を導入する際、開発者が最初に直面する大きな課題が実行環境の構築です。テストコードの記述そのものよりも、Seleniumのバージョン、ブラウザのバージョン、そしてブラウザドライバの互換性という依存関係の問題により、環境が正常に動作しないケースが多々見受けられます。本記事では、Java言語を用いてFirefoxブラウザ上でSelenium 3.xを動作させるための環境構築手順を具体的に解説します。
環境を構築するにあたり、各コンポーネントのバージョン適合性が最も重要です。ここでは、動作検証済みの構成として「Selenium 3.5.1」、「Firefox 56」、「GeckoDriver 0.19.0」という組み合わせを採用します。
1. Maven依存関係の設定
まず、JavaプロジェクトでSeleniumを利用するために、ビルドツール(Maven)の設定ファイルに依存関係を追加します。バージョン3.5.1を指定してライブラリをプロジェクトに取り込みます。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.5.1</version>
</dependency>
2. ブラウザとドライバの準備
Selenium 3.0以降、Firefoxブラウザを自動操作するためには「GeckoDriver」という実行ファイルが必要です。今回はバージョン0.19.0のGeckoDriverを使用します。Mozillaの公式リポジトリまたは信頼できるソースから該当バージョンの実行ファイルをダウンロードしてください。
また、GeckoDriver 0.19.0の変更ログに基づき、対応するFirefoxブラウザはバージョン55以降が推奨されています。ここではバージョン56のFirefoxを使用します。テスト実行中にブラウザが自動更新されてバージョン不一致が生じないよう、ブラウザ設定にて自動更新機能を無効化しておくことが重要です。
ダウンロードしたGeckoDriverの実行ファイル(geckodriver.exe)は、プロジェクトのクラスパスが通っている場所、またはソースコードから参照可能なディレクトリに配置します。本例では、プロジェクト構造内の src/test/resources/drivers/ ディレクトリに格納することを想定しています。
3. 動作確認用コードの実装
環境が正しく構築されたかを確認するため、Firefoxブラウザを起動し、Webサイトにアクセスして終了する一連の処理を実装します。以下に、TestNGフレームワークを利用した検証コードの例を示します。
package com.example.automation;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class FirefoxSetupValidation {
private WebDriver browser;
@BeforeMethod
public void prepareDriver() {
// GeckoDriverのパスをシステムプロパティに設定
// パスは環境に合わせて適宜変更してください
String driverPath = "src/test/resources/drivers/geckodriver.exe";
System.setProperty("webdriver.gecko.driver", driverPath);
// FirefoxDriverのインスタンス化
browser = new FirefoxDriver();
}
@Test
public void verifyBrowserLaunch() {
// 指定したURLへ遷移
String targetUrl = "https://www.baidu.com";
browser.get(targetUrl);
System.out.println("ブラウザが起動し、" + targetUrl + " へのアクセスを確認しました。");
// 動作確認のため3秒間待機
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
System.err.println("待機処理中に例外が発生しました: " + e.getMessage());
}
}
@AfterMethod
public void cleanUp() {
// ブラウザセッションの終了
if (browser != null) {
browser.quit();
}
}
}
4. 実行結果の確認
上記のテストコードを実行します。Firefoxブラウザが自動的に立ち上がり、指定したWebページ(Baidu)が正しく表示され、3秒後にブラウザが終了すれば、環境構築は成功です。これにより、JavaとSelenium 3.xを用いたFirefoxベースの自動テスト環境が整いました。