2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GebAdvent Calendar 2016

Day 15

Gebで別タブ遷移を自動化する

Last updated at Posted at 2016-12-15

はじめに

これはGeb Advent Calendar 2016の15日目の記事です。
前日はGebの名前の由来を中の人に聞いてみたでした。

今日は別タブが絡む場合の自動化の話です。

別タブを開くときの自動化

ありますよね。プライバシーポリシーが別タブで開くとか。そういうものを自動化するときの話です。

すでに開いているタブにスイッチするとき

withWindow()というのが用意されていまして、こんな感じでかけます。

Browser.drive {
    go()
    $("a").click()
    withWindow("myWindow") {
        assert title == "Geb - Very Groovy Browser Automation"
    }
}

新たに開くタブにスイッチするとき

こちらはそれ用に withNewWindow()

Browser.drive {
    go()
    withNewWindow({ $('a').click(), wait: true}) {
        assert title == 'Geb - Very Groovy Browser Automation'
    }
}

最初のクロージャーで、そのタブを開くアクションを指定します。
その後の引数でオプションを指定できます。

オプション

close

trueにすると別タブを開いた後の処理が終わった後にそのタブを閉じる

page

ここをセットすると、別タブを開く直前にページオブジェクトを引数で指定したものに切り替えてくれます。別タブで複雑な操作するときに便利!

wait

これはwithNewWindow()だけで設定できます。ページを開く処理を待ってくれます。waitの値にはいろいろなものが指定できます。詳しくはこちら

注意点

このwithWindow(), withNewWindow()自体はvoidのメソッドなので、Spockのthenブロックの中で利用すると意図せずこけたりします。最初は気づきにくいので気をつけてください。

参考

まとめ

Gebだと別タブの自動化も楽。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?