薄給SEの技術屋日記

何でもポジティブに | 3人家族+チワワと暮らすSE | 20代は休む間も無く仕事と飲み会 | 30代から株主優待に目覚め今では節約しながら配当金投資 | 目標は配当金投資で住宅費月7万を補うこと | 大宮アルディージャサポ | 度重なる過労で体調不良となり家族と自分の身体を優先する生活 | 最近米国株の購入を開始

【技術】javaでSeleniumを使用する

LOLIPOP

javaでテスト工数を削減する方法としてjunitの利用が考えられますが、プログラムテストには有効であるものの、結合テストのように画面を打鍵してテストをする場合には活用することができません。
画面を一定の法則に基づき自動で操作・試験できるツールがないものかと探していたら無料のツール「Selenium」がありました。

Seleniumとは?

ブラウザを自動で操作できるツールです。
google ChromeMicrosoft Edge等、複数ブラウザに対応しています。
画面操作をプログラムコードで指定できるので、何度も同じテストを繰り返す際にとても役に立つと思います。

Seleniumの準備

Edge用のWebDriverの準備

まずはEdgeのバージョン確認
Edgeの[設定]->[全般]から一番下までスクロールするとバージョンを確認できます。

EdgeのバージョンにあったWebDriverをダウンロードページからダウンロードします。

「edgedriver_win64.zip」がダウンロードされますので解凍します。
解凍すると「msedgedriver.exe」が確認できると思います。
このファイルがEdgeのWebDriverの実行ファイルとなり、SeleniumでEdgeを操作する場合に利用することになります。

pom.xml

Eclipseを用意し、Java実行環境およびMavenの実行環境を準備します。
pom.xmlselenium-javaのライブラリを設定します。
基本的に最新バージョンで問題ないかと思います。
※今回はバージョン指定していませんが、3.141.59のように指定しておいたほうがよいです。
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 Edgegoogleのサイトが開けたと思います。
seleniumではテキストの入力やボタンの実行まで行うことが可能なので今後試してみたいと思います。