GebとSpockで取得したタグを確認したい
【Geb】【Tips】GebとSpockで取得したタグを確認したい
著者:ふじさわゆうき
問題
- 取得したいタグが取得できていないが原因がわからずにトライアンドエラーになってしまい問題解決に時間がかかってしまう。
原因
- タグ検索結果をログ出力しないために手さぐりの解決になってしまっていること
解決
- タグの検索結果をコンソールログに出力することで、どのようなミスをしているのか確認できるようにする。そうすることで、問題の切り分けが可能になる
- 以下、ヤフートップページにある"inputタグ"全部をコンソールログに出力するプログラムのサンプル
- コンソールログに出力することで、"inputタグ"から絞り込むためのヒントとなる
- 「$("input").each」はgroovyの命令で、"inputタグ"の配列をloopする命令
- "it"は、"input"タグのこと
- 詳しくは、「groovy クロージャ it」でgoogle検索してみること
- "it.getAttribute("name")"は、"input"タグのname属性を取得するメソッド
- getAttributeメソッド以外に、text() , value()も利用できる。その他、利用できるメソッドは、NavigatorクラスのAPIを参照のこと
- Navigator (Groovy API Documentation for Geb 0.10.0)
class DebugTest extends GebSpec { def "output debug log"() { when: go "http://www.yahoo.co.jp" then: waitFor{ title == "Yahoo! JAPAN"} $("input").each{ println "name: " + it.getAttribute("name") + ", type: " + it.getAttribute("type") + ", value: " + it.getAttribute("value") } } }
- 実行結果
name: p, type: text, value: name: , type: submit, value: 検索 name: search.x, type: hidden, value: 1 name: fr, type: hidden, value: top_ga1_sa name: tid, type: hidden, value: top_ga1_sa name: ei, type: hidden, value: UTF-8 name: aq, type: hidden, value: name: oq, type: hidden, value: name: afs, type: hidden, value: name: p, type: text, value: name: , type: submit, value: 検索 name: search.x, type: hidden, value: 1 name: fr, type: hidden, value: top_ft name: tid, type: hidden, value: top_ft name: ei, type: hidden, value: UTF-8