かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot + npm + Geb で入力フォームを作ってテストする ( その93 )( WebDriver を最新バージョンに上げる )

概要

記事一覧はこちらです。

Spring Boot + npm + Geb で入力フォームを作ってテストする ( その92 )( http-proxy-middleware の createProxyMiddleware 関数の引数 context には Proxy させない URI を後に書く ) の続きです。

何回かに分けて boot-npm-geb-sample プロジェクトのモジュールやツールを 2021/10 時点の最新バージョンにします。IntelliJ IDEA は 2021.2.2、JDKEclipse Temurin 11.0.12+7 を使用します。

  • 今回の手順で確認できるのは以下の内容です。
    • WebDriver を最新バージョンに上げて動作するようにします。
    • 今回は SeleniumGeb は最新バージョンには上げません。Geb の最新バージョン 5.0 は Groovy 3、Spock 2 へのバージョンアップが必要なので、Gradle のバージョンアップをした後にバージョンアップします。

参照したサイト・書籍

目次

  1. WebDriver のバージョンを最新にする
  2. build タスクと gebTest タスク、及び IDEA から Geb のテストを実行した時の動作確認する

手順

WebDriver のバージョンを最新にする

動作確認をする前に ChromeFirefox のWebDriver を最新バージョンにします。Chrome の WebDriver は https://chromedriver.chromium.org/ を見ると Latest stable release は 94.0.4606.61、Firefox の WebDriver は https://github.com/mozilla/geckodriver/releases を見ると 0.30.0 でした。

build.gradle の以下の点を変更します。

webdriverBinaries {
    chromedriver "94.0.4606.61"
    geckodriver "0.30.0"
}
  • chromedriver "81.0.4044.69"chromedriver "94.0.4606.61" に変更します。
  • geckodriver "0.26.0"geckodriver "0.30.0" に変更します。

変更後、Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。

また chromedriver、geckodriver の exe もダウンロードして D:\chromedriver\94.0.4606.61D:\geckodriver\0.30.0 の下に配置した後、src/test/resources/GebConfig.groovy の以下の点を変更します。

//System.setProperty("webdriver.gecko.driver", "D:/geckodriver/0.30.0/geckodriver.bat")
//System.setProperty("webdriver.chrome.driver", "D:/chromedriver/94.0.4606.61/chromedriver.exe")
driver = {
    ..........
  • D:/geckodriver/0.26.0/geckodriver.batD:/geckodriver/0.30.0/geckodriver.bat に変更します。
  • D:/chromedriver/81.0.4044.69/chromedriver.exeD:/chromedriver/94.0.4606.61/chromedriver.exe に変更します。

build タスクと gebTest タスク、及び IDEA から Geb のテストを実行した時の動作確認する

clean タスク実行 → Rebuild Project 実行 → build タスク実行を行うと compileTestGroovy タスクで警告のメッセージが出ますが、BUILD SUCCESSFUL のメッセージが表示されます。Spring Boot + npm + Geb で入力フォームを作ってテストする ( その83 )( Checkstyle を 8.11 → 8.19 へ、PMD を 6.6.0 → 6.13.0 へバージョンアップ+JUnit 5 の導入+ Oracle JDK 8u202 → AdoptOpenJDK 11.0.2+9 へ、error-prone を 2.3.1 → 2.3.3 へバージョンアップする) と同じ状況ですので、これは OK。

f:id:ksby:20210929192305p:plain

Web アプリを起動してから gebTest タスクを実行してみると、こちらも BUILD SUCCESSFUL のメッセージが表示されました。

f:id:ksby:20210929194325p:plain

次は IDEA から Geb のテストを実行してみます。src/test/resources/GebConfig.groovy の上に記述している WebDriver のパスの設定のコメントを解除してから、

System.setProperty("webdriver.gecko.driver", "D:/geckodriver/0.30.0/geckodriver.bat")
System.setProperty("webdriver.chrome.driver", "D:/chromedriver/94.0.4606.61/chromedriver.exe")
driver = {
    ChromeOptions chromeOptions = new ChromeOptions()
    new ChromeDriver(chromeOptions)
//    FirefoxOptions firefoxOptions = new FirefoxOptions()
//    new FirefoxDriver(firefoxOptions)
}

src/test/groovy/geb/gebspec/inquiry/InquiryTestSpec.groovy を開いてテストを実行します。

f:id:ksby:20210929194623p:plain

Chrome はすべてのテストが成功しました。

f:id:ksby:20210929194929p:plain

Firefox に切り替えてテストを実行すると、

System.setProperty("webdriver.gecko.driver", "D:/geckodriver/0.30.0/geckodriver.bat")
System.setProperty("webdriver.chrome.driver", "D:/chromedriver/94.0.4606.61/chromedriver.exe")
driver = {
//    ChromeOptions chromeOptions = new ChromeOptions()
//    new ChromeDriver(chromeOptions)
    FirefoxOptions firefoxOptions = new FirefoxOptions()
    new FirefoxDriver(firefoxOptions)
}

こちらもすべてのテストが成功しました。

f:id:ksby:20210929195413p:plain

履歴

2021/09/29
初版発行。