FirefoxとJavaを用いたSelenium WebDriver環境の構築

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ベースの自動テスト環境が整いました。

タグ: Selenium Java Firefox WebDriver GeckoDriver

5月19日 03:31 投稿