Java/Selenide

Java/Selenide

ブラウザのオートパイロットツールである Selenium をテストに特化した Java 向けのラッパー。

環境さえ整えれば非常に簡単に動作させられるので Java系 のプロダクトで無くても活用する場合は多いと思う。

設定

使うブラウザを決める

Configuration.browser = WebDriverRunner.CHROME;

テスト終了後にブラウザを閉じない

テスト構築中はこちらのほうが楽だったりする。

Configuration.holdBrowserOpen = true;

スクリーンショットの保存場所を決める

Configuration.reportsFolder = "result/HogeTest1";

各種制御メソッド

static import しておく

import static com.codeborne.selenide.Selenide.*;

ブラウザで URL を開く

これを実行するとブラウザで URL を開く

open("https://www.yahoo.co.jp/");

onload で同期的動作をするようだ。なので

open("https://www.yahoo.co.jp/");
open("https://www.google.co.jp/");
open("https://www.yahoo.co.jp/");

このように書くと、同じタブで Yahoo のサイトをロードし終わったら、次に Google のサイトを開いて、また Yahoo のサイトを開くとという動作になる。 Google のトップページは非常に高速なので一瞬で終わってしまうが、そのように動作する。

戻りは void なのでこいつの結果をしてなにか制御できるわけではない。

画面要素の取得

jQuery ライクにできるのであとはひたすらチェックするだけである。

要素を1個ほしいならこんな感じ。

SelenideElement elm = $("#hoge > a");

複数欲しいならこんな感じ。

List<SelenideElement> elmList = $$("#hoge > a");
ElementsCollection elmList = $$("#hoge > a");

SelenideElement は単に要素を表していて、jQuery のような集合体な概念ではない。

画面要素に対する操作

操作といっても、やることはクリックするとか入力するとかしかない

クリックする

SelenideElement elm = $("#hoge > a");
elm.click();

入力する

SelenideElement elm = $("#hoge > input");
elm.val("unko");

スクリーンショットを撮る

このメソッドを実行すると、hogepiiyofuga.png ファイルと hogepiiyofuga.html ファイルが出力される

Selenide.screenshot("hogepiyofuga");

html も出力されるので、assertion はしないでとりあえず実行して挙動を確認するということもできる

https://selenide.org/documentation/screenshots.html

イベントにフックすることでテスト失敗の場合だけ自動的に撮ったりとかもできたりするようだ。

java/selenide/start.txt · 最終更新: 2019-01-24 10:44 by ore