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()