Seleniumを試してみる(Google Chrome)

投稿者: | 2019年4月23日

Webアプリケーションの自動テストツールとしてSeleniumが有名ですが

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

 

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

検証に使用したのは、Google Chrome ver 69.0.3497.100, Windows 10 Home 64 bit です。

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

 

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

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

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

 

実行コード

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

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

ちなみに下記の手順でブラウザを操作すると、必須項目未入力の為必ずエラーが出ますが、今は動作確認なので気にしないことにします。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Sample {

	public static void main (String[] args) {
		WebDriver driver = new ChromeDriver();
		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.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html

どうやら「Windows版のChrome Driverを取得し、system propertyでセットせよ」と言われている様子。

 

https://sites.google.com/a/chromium.org/chromedriver/downloadsから「Latest Release」をクリックします。

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

 

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

System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32\\chromedriver.exe");

 

コードの修正と再実行

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

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Sample {

	public static void main (String[] args) {
		System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32\\chromedriver.exe");
		WebDriver driver = new ChromeDriver();
		driver.get("http://example.selenium.jp/reserveApp");
		driver.findElement(By.id("goto_next")).click();
		driver.quit();

	}
}

 

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