[SeleniumWebdriver][Ruby]ブラウザを操作している最中にPopupを表示させる


SeleniumWebdriverでブラウザを操作している最中にPopupを表示させる

これを試してみようと思ったきっかけは、さらっとログインまでは自動でやって、ログインしたら手動で操作したい。
という場面があったからです。
が、SeleniumWebdriverではログインするコードを書くとどうでしょう。
ログイン後に終了してしまいますね。

で、以下の2点を同時にクリアする方法はないかなと試行錯誤した結果になります。

・ブラウザを開いてログインまで自動でやって欲しい
・でもテストが終わっても勝手に閉じないで欲しい

実際に作ってみよう

Acces.rb
require 'win32ole'

# 自由時間開始
puts '========== FreeStyle START !! =========='

def show(msg,title)
  wsh = WIN32OLE.new('WScript.Shell')
  wsh.Popup(msg, 0, title)
end
show("もうい~かい?", "+++")

puts '========== FreeStyle END !!   =========='
# 自由時間終了

動かしてみると

プロンプト上では以下のようになり、処理が停止します。

> Access.rb
========== FreeStyle START !! ==========

これはPopupに表示されるボタンの入力を待っている為です。
Popupに表示させるボタン等の引数についてはこちらが詳しく書いてあったので、参考にしていろいろ試してみるといいですね。

ポップアップは?

以下のポップアップが表示されます。
OKボタンを押すまでは、ブラウザは起動したままとなりますので、手動で操作が可能です。

他に使い道は?

えーっと、例えば自分のPC上でE2Eツールを使って軽く自動化したい!みたいな時、
アサーションに PASS(変数)や FAIL(変数)をインクリメントさせることで、
数字の計上ができますので、それをPopupに載せるように以下を指定してみると

def show(msg, title)
  wsh = WIN32OLE.new('WScript.Shell')
  wsh.Popup(msg, 0, title, 0)
end
show("PASS:#{$PASS}\nFAIL:#{$FAIL}", "TEST RESULT")

と、このように結果をポップアップに表示してくれて、OKボタンを押さない限りゆっくり確認できます。とか。
・・・あんまりないですかね。

個人的にはこれは軽くブラウザ触りたいって時に重宝してますので、
もし同じ感覚で触る方がいらっしゃれば、是非参考にしていただければorこんなのもあるよ!など教えていただければと思います。