liguofeng29’s blog

個人勉強用ブログだっす。

groovy,geb(selenium),spockによる自動化テスト その2

eclipseでGroovy ScriptでGebを利用する

  • eclipse4.6 http://mergedoc.osdn.jp/

  • groovy eclipse https://github.com/groovy/groovy-eclipse/wiki

  • buildship Gradle integration 2.0

  • gradleプロジェクト生成

  • build.gradleに依存関係追加
    dependencies {
    // for geb
    compile “org.gebish:geb-core:1.1.1”
    compile “org.seleniumhq.selenium:selenium-firefox-driver:3.1.0”
    compile “org.seleniumhq.selenium:selenium-support:3.1.0”
    }
  • scpirt1.groovy
/**
 * Geb sample
 *
 * http://www.gebish.org/manual/current/#the-jquery-ish-navigator-api
 *
 * jquery selector
 * https://www.w3schools.com/jquery/trysel.asp
 * https://www.w3schools.com/jquery/jquery_selectors.asp
 *
 *
 */
import geb.Browser

/**
 * geb常用メソッド
 *
 * .value() elementのtext代入
 * .text()  elementのtext取得
 * .click() elementのclick
 * waitFor    条件待ち、時間経過するとWaitTimeoutExceptionが発生する
 *
 */
def keyword = 'javait.hatenablog.com'

Browser.drive {
    go 'http://yahoo.co.jp'

    // タイトルがYahooになるまで待つ
    waitFor { title.startsWith('Yahoo') }

    // keyword入力
    $('#srchtxt').value(keyword)
    // ボタンクリック
    $($('#srchbtn')).click()

    // タイトルが検索結果で終わるまで待つ
    waitFor() { title.endsWith('検索') }

    // waitFor(1) { false } 1秒後timeout
    // waitFor { title.endsWith('設定した時間後timeoutが発生する') }

    // 出力
    $('h3').each { println "* ${it.text()}" }

}.quit()

f:id:liguofeng29:20170301201457g:plain