うさぎ組

ソフトウェア開発、チームによる製品開発、アジャイル、ソフトウェアテスト

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"
  }