Geb Script

Geb Scriptは、Groovy言語で書かれたブラウザ自動化フレームワークである<ref name="yfj2.hateblo.jp/entry/2014/10/26/164629">【入門】Geb+SpockではじめるWebテスト</ref>。
Selenium WebDriverで挙がっている問題（例えば、ログインボタンを押すだけでも多くのプログラミングが必要など）を解決するために誕生した。
Gebのメリット.
出典
Navigator APIとは.
出典<ref name="yfj2.hateblo.jp/entry/2014/11/17/160106">【Geb】ナビゲーターAPIとは? / What is Navigator API ?</ref>
// CSS 3 selectors
$("div.some-class p:first[title='something']")
// index and/or attributeをマッチングすることで検索する
$("h1", 2, class: "heading")
$("p", name: "description")
$("ul.things li", 2)
//"text"は、テキスト内容要素のための特別な属性である
$("h1", text: "All about Geb")
// Gebが提供するmatcherや正規表現でも取得が可能
$("p", text: contains("Geb"))
$("input", value: ~/\d{3,}-\d{3,}-\d{3,}/)
// Chaining
$("div").find(".b")
$("div").filter(".c").parents()
$("p.c").siblings()
サンプルコード.
出典
以下、コードを実行することで「Google検索⇒検索結果⇒Wikipedia」という流れのWebテストが実施できる。
import geb.Browser
Browser.drive {
 go "http://google.com/ncr"
 // make sure we actually got to the page
 assert title == "Google"
 // enter wikipedia into the search field
 $("input", name: "q").value("wikipedia")
 // wait for the change to results page to happen
 // (google updates the page dynamically without a new request)
 // is the first link to wikipedia?
 def firstLink = $("li.g", 0).find("a")
 assert firstLink.text() == "Wikipedia"
 // click the link 
 firstLink.click()
 // wait for Google's javascript to redirect to Wikipedia