eclipseからselenium WebDriverを使う

ウェブテストの自動化ってことで、seleniumIDEは以前から使っていましたが、繰り返しだったり、どこかを選択などなど細かい動きを制御するのはIDEじゃちょっと難しいみたい。そこでselenium WebDriverを使ってみる。いろんなインタフェイス(pythonjavaC++)なんかがあるようですが、あえて一度もコードを書いたことがないjavaでやってみる。といってもeclipseからですが。

必要なjarファイルをダウンロード

http://www.seleniumhq.org/download/ からselenium WebDriverのjava言語バインディングをダウンロード。
リンクをはると http://selenium.googlecode.com/files/selenium-java-2.37.0.zip これです。
ダウンロードしたらunzipして適当なディレクリへ置いておく。

eclipseで新規プロジェクトを作成

eclipseを起動して、ファイル→新規→Javaプロジェクトを選択。

プロジェクト名を適当に入力。今回は"selenium"としました。入力したら「完了」をクリック。

プロジェクトにseleniumの言語バインディングを追加

上記で作成した"selenium"プロジェクトがeclipseの左側画面に表示されるので、そこで右クリック→ビルドパス→外部アーカイブの追加をクリック。

先ほどダウンロードしてzipを展開したファイルのうち、

  • selenium-server-2.37.0.jar
  • lib以下のjarファイルすべて

を追加。

新規パッケージを追加

左側ペイン"selemium"で右クリック、新規→パッケージを選択。「名前」のところにパッケージ名を適当に入力して、「完了」をクリック。
今回は"jp.co.example.test"と入力。


クラスを作成

やっとコードを書くところまできました。
上記でできたパッケージ"jp.co.example.test"が左側ペインに表示されるので、これを右クリック→新規→クラスを選択。

「名前」のところに適当なクラス名を入れて「完了」をクリック。今回はExampleWebTestを入れました。

ソースを書く

上記で「完了」をクリックすると、ようやくコードを書く画面がでてきます。最初のコードはこんな感じ。

package jp.co.example.test;

public class ExampleWebTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

	}

}

これをこんな風に変更。

package jp.co.example.test;


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class ExampleWebTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		WebDriver driver = new FirefoxDriver();
		driver.get("http://www.example.co.jp");
		driver.quit();

	}

}

これを実行すると、Firefoxが立ち上がって、指定したURLを表示してすぐ終了します。
1秒ほどスリープさせたいんですが、例外も同時に書かないといけないとか面倒。