Geb 0.9.xの新機能紹介 #gadvent
はじめに
これはG* Advent Calendarの11日目の記事です。今日はGeb0.9系の新機能について書きます。明日はid:kyon_mm さんのGroovyでテストをテストする です。
概要
GebはWebアプリケーションのGUIテストライブラリで、Selenium WebDriverのGroovyラッパーになっています。 先日Geb 0.10の新機能は紹介したので、その前バージョンである0.9系で追加された機能を紹介します。ビルドツール連携やBrowserStack連携が強化されていますが、その紹介はまた別の機会に。
viaを使うことで、atチェックをシないで指定ページに遷移する
to Pageではatチェックが実行されますが、via Pageを使うことにより、atチェックは実行せずに遷移だけになります。
via ExamplePage
独自Navigatorを実装する
Navigatorに手を加えたいときに独自のものに差し替えることが出来ます。
innerNavigatorFactory = { Browser browser, List<org.openqa.selenium.WebElement> elements elements ? new MyCustomNavigator(browser, elements) : new geb.navigator.EmptyNavigator() }
withFrameによってページ中のFrameにPageObjectパターンを活用する
ページ中にframeがある場合にはframeをPageObjectにしておくことで、withFrameによって普通のto遷移と同じような挙動になります。
to PageWithFrames
withFrame('frame-name', PageDescribingFrameContents) {
}
atチェックでwaitするように設定する
atチェックを実行する前にwaitする設定を追加できます。GebCofig.groovyに書きます。
atCheckWaiting = true // 他のwaitと同じように文字列とか数字とかも指定できます。
自己署名証明書関連のヘルパーが追加
new SelfSignedCertificateHelper("key-store-url".toURL(), "key-store-file-password") .acceptCertificatesFor(httpsUrlConnection)
新しいウィンドウで開くときにウィンドウを最後に閉じるかどうかを指定する
withNewWindow({header.adminMenu.click()}, close:false){ assert mainContent.text == "main content" }
現在表示中のURLを取得する
browser.currentUrl
表示ページのルート要素の取得においてWaitする
GebConfig.groovyに書きます。
baseNavigatorWaiting = true // 他のwaitと同じように文字列とか数字とかも指定できます。
新しいウィンドウで開くときにpage指定するとatチェックが有効になる
withNewWindow({header.adminMenu.click()}, page:AdminPage){ assert mainContent.text == "main content" }