WebDriverとは

WebDriverはWebブラウザを操作するためのJavaライブラリだ。WebアプリケーションのUIテストツールとして使用することが想定されており、JavaScriptを多用しリッチなUIを提供するアプリケーションのテストに効果を発揮する。

サポートするブラウザはFirefox、Safari(MacOS Xのみ)、Internet Explorer(Windowsのみ)となっている。また、実際のブラウザは使わずHtmlUnitを使用することも可能だ。この場合、Rhino(Javaで実装されたJavaScriptエンジン)を使用してブラウザ上で動作するJavaScriptの動作もエミュレートすることもできる。また、試験的にiPhone用のドライバの実装も進められているようだ。

同種のテストツールとしてはすでにSeleniumなどがあり、多くのユーザに利用されている。しかしSeleniumはWebブラウザ上で動作するJavaScriptで記述されていることからセキュリティ制約によってファイルアップロードやクロスドメインのテストを行うことが難しいといった欠点がある。WebDriverはブラウザそのものを制御するため、このような制約とは無縁だ。

WebDriverのダウンロード

WebDriverはGoogle Codeのダウンロードページから入手することができる。

WebDriverは以下のようにブラウザ毎にドライバーが提供されており、ダウンロードアーカイブもドライバーごとに分かれたものと、全てのドライバーをまとめたものが用意されている。

WebDriverのダウンロードページ

ダウンロードしたアーカイブに含まれるJARファイルをクラスパスに追加すればWebDriverを使う準備は完了だ。

なお、WebDriverはOpenQAのMavenリポジトリにもデプロイされているため、Mavenを利用している場合はこちらを利用するといいだろう。Mavenで使用するには、まずpom.xmlに以下のようにOpenQAのリポジトリを追加する。

<repositories>
    ...
    <repository>
        <id>openqa-releases</id>
        <name>OpenQA Releases</name>
            <url>http://nexus.openqa.org/content/repositories/releases</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    ...
</repositories>

その後、利用するドライバに応じて以下のように依存性を追加すればよい。

<dependency>
    <groupId>org.openqa.selenium.webdriver</groupId>
    <artifactId>webdriver-htmlunit</artifactId>
    <version>0.6.964</version>
</dependency>

<dependency>
    <groupId>org.openqa.selenium.webdriver</groupId>
    <artifactId>webdriver-firefox</artifactId>
    <version>0.6.964</version>
</dependency>