menu
書いてる野郎
orebike@gmail.com
ブラウザのオートパイロットツールである Selenium をテストに特化した Java 向けのラッパー。
環境さえ整えれば非常に簡単に動作させられるので Java系 のプロダクトで無くても活用する場合は多いと思う。
Configuration.browser = WebDriverRunner.CHROME;
テスト構築中はこちらのほうが楽だったりする。
Configuration.holdBrowserOpen = true;
Configuration.reportsFolder = "result/HogeTest1";
static import しておく
import static com.codeborne.selenide.Selenide.*;
これを実行するとブラウザで 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
イベントにフックすることでテスト失敗の場合だけ自動的に撮ったりとかもできたりするようだ。