javaでテスト工数を削減する方法としてjunitの利用が考えられますが、プログラムテストには有効であるものの、結合テストのように画面を打鍵してテストをする場合には活用することができません。
画面を一定の法則に基づき自動で操作・試験できるツールがないものかと探していたら無料のツール「Selenium」がありました。
Seleniumとは?
ブラウザを自動で操作できるツールです。
google ChromeやMicrosoft Edge等、複数ブラウザに対応しています。
画面操作をプログラムコードで指定できるので、何度も同じテストを繰り返す際にとても役に立つと思います。
Seleniumの準備
Edge用のWebDriverの準備
まずはEdgeのバージョン確認
Edgeの[設定]->[全般]から一番下までスクロールするとバージョンを確認できます。
EdgeのバージョンにあったWebDriverをダウンロードページからダウンロードします。
「edgedriver_win64.zip」がダウンロードされますので解凍します。
解凍すると「msedgedriver.exe」が確認できると思います。
このファイルがEdgeのWebDriverの実行ファイルとなり、SeleniumでEdgeを操作する場合に利用することになります。
pom.xml
Eclipseを用意し、Java実行環境およびMavenの実行環境を準備します。
pom.xmlにselenium-javaのライブラリを設定します。
基本的に最新バージョンで問題ないかと思います。
※今回はバージョン指定していませんが、
selenium-javaのバージョンはこちらのサイトからご確認ください。
<!-- HTMLのコメント --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> </dependency>
Seleniumの実行
今回はJava11で動作確認しています。
Cドライブのoptフォルダにダウンロードした「msedgedriver.exe」を配置します。
以下コードを準備し、Eclipse上から起動すると自動でMicrosoftEdgeが起動されます。
※MicrosoftEdgeを起動した状態でソースコードを実行するとうまく起動できない場合があります。
<!-- HTMLのコメント --> import org.openqa.selenium.edge.EdgeDriver; public class Main2 { public static void main(String args[]) { System.setProperty("webdriver.edge.driver", "C:\\opt\\msedgedriver.exe"); EdgeDriver driver = new EdgeDriver(); // ウィンドウを最大化 driver.manage().window().maximize(); try { driver.navigate().to("https://google.co.jp"); Thread.sleep(15000); } catch (Exception e) { e.printStackTrace(); } finally { driver.quit(); } } }
下記のようにMicrosoft Edgeでgoogleのサイトが開けたと思います。
seleniumではテキストの入力やボタンの実行まで行うことが可能なので今後試してみたいと思います。