yfj2’s Automatic Web Test Related Blog

yfj2のWEBテスト自動化に関わるブログ

GebとSpockで取得したタグを確認したい

【Geb】【Tips】GebとSpockで取得したタグを確認したい
著者:ふじさわゆうき

問題

  • 取得したいタグが取得できていないが原因がわからずにトライアンドエラーになってしまい問題解決に時間がかかってしまう。

原因

  • タグ検索結果をログ出力しないために手さぐりの解決になってしまっていること

解決

  • タグの検索結果をコンソールログに出力することで、どのようなミスをしているのか確認できるようにする。そうすることで、問題の切り分けが可能になる
  • 以下、ヤフートップページにある"inputタグ"全部をコンソールログに出力するプログラムのサンプル
  • コンソールログに出力することで、"inputタグ"から絞り込むためのヒントとなる
    • 「$("input").each」はgroovyの命令で、"inputタグ"の配列をloopする命令
    • "it"は、"input"タグのこと
      • 詳しくは、「groovy クロージャ it」でgoogle検索してみること
    • "it.getAttribute("name")"は、"input"タグのname属性を取得するメソッド
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