メモログ

塵が積もって山とならないメモのログ

watirでJavascriptのアラートを操作する

watirで操作をしているときに、Javascriptのアラートを操作しないといけないときがたまにあります。私は、最近は下記のようにautoitを使って操作しています。

1
2
3
4
5
6
7
8
9
def handling_javascript()
title = @ie.Name
Watir.autoit.WinWait(title,"","10")
if Watir.autoit.WinExists(title) == 1
Watir.autoit.ControlFocus(title,"","")
Watir.autoit.ControlClick(title,"","OK")
end
end

title=@ie.Name では、IEの名称を取得しています。これはJavascriptのアラートを操作するときのwindowのtitleとして必要なのですが、IEの名称はIE6とIE7以降では異なるため、その都度取得しています。WinWaitは、titleに合致したwindowが表示されるまで待ちます。3つ目の引数でタイムアウトを設定できます。WinExistsは、titleで指定したwindowが存在する場合は1を返します。ControlFocusはtitleで指定したwindowにフォーカスします。ControlClickではtitleで指定したwindowにある、3つ目の引数で指定した文字列のボタンをクリックします。

これだけなのですが、最低限の操作はこれで可能です。そのほかJavascriptの操作の方法は、watirのFAQWinClickerによる操作とかを参照するといいかもしれません。