Seleniumを試してみる(Firefox)

投稿者: | 2019年4月25日

Webアプリケーションの自動テストツールSeleniumを試すシリーズ。

今回はFirefoxを立ち上げてからのテスト起動までを行ってみたいと思います。

 

OS/ブラウザのバージョン

検証に使用したのは、FireFox 62.0.2, Windows 10 Home 64 bit です。

まずはWeb Driverのダウンロード。https://www.seleniumhq.org/download/から最新のjavaのWebDriverをダウンロードし、解凍します。

 

ここではSelenium 3.14.0を使っていますが、このバージョンはFirefox 62より下のバージョンだと動作しない可能性があるので要注意。

 

次にEclipseでJavaプロジェクトを作り、プロジェクトを右クリックか、メニューバーの「プロジェクト」でプロパティを開きます。

「Javaのビルド・パス」を選択し、「ライブラリ」タブから先ほどダウンロード・解凍したjarファイルを、「外部JARの追加」ボタンで選択し設定します。

終わったら「適用して閉じる」ボタンをクリック。

 

実行コード

mainメソッドを書きます。使用するURLは、日本Seleniumユーザコミュニティが提供しているサンプルWebページ。

8行目で FirefoxDriver をインスタンス化し、ブラウザとして Firefox を起動させています。

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

public class Sample {

	public static void main (String[] args) {
		WebDriver driver = new FirefoxDriver();
		driver.get("http://example.selenium.jp/reserveApp");
		driver.findElement(By.id("goto_next")).click();
		driver.quit();

	}
}

 

エラーの発生と解決方法

Eclipseから実行すると、次のエラーが発生。

Exception in thread “main” java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases

どうやら「https://github.com/mozilla/geckodriverからgeckodriverを取得し、system propertyでセットせよ」と言われている様子。

 

メッセージに従い、https://github.com/mozilla/geckodriver/releases から、geckodriver-v0.22.0-win64.zipをダウンロードし解凍します。

chromedriver_win32.zipをダウンロードし解凍します。(使用しているOSは64bitなんですが、動作に問題はない様子)

 

先ほど記述したコードに、以下の一行を加えます。

System.setProperty("webdriver.gecko.driver", "C:\\geckodriver-v0.22.0-win64\\geckodriver.exe");

 

コードの修正と再実行

コードの全体像は以下となります。

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

public class Sample {

	public static void main (String[] args) {
		System.setProperty("webdriver.gecko.driver", "C:\\geckodriver-v0.22.0-win64\\geckodriver.exe");
		WebDriver driver = new FirefoxDriver();
		driver.get("http://example.selenium.jp/reserveApp");
		driver.findElement(By.id("goto_next")).click();
		driver.quit();

	}
}

 

実行すると、今度は動きました。Firefoxが自動で立ち上がり、テスト実行後に自動的に終了します。