Seleniumでアラートポップアップのボタンを押す方法


Seleniumでブラウザ操作中にアラートのポップアップ(ダイアログ?)を表示させるサイトが存在しますが、そのアラートを操作する方法を解説します。

では例として以下のアラートを用意致します。

こちらの各ボタンを押す方法と、表示されているメッセージを取得する方法はそれぞれ以下の様に記述します。

Dim chrome As New ChromeDriver

'~~~~~(省略)~~~~~

' OKを押す場合
chrome.SwitchToAlert.Accept()

' キャンセルを押す場合
chrome.SwitchToAlert.Dismiss()

' 表示されている文字を取得する場合
Dim displayMsg As String = chrome.SwitchToAlert.Text
'displayMsg:本当に削除してもよろしいですか?

ボタンの表示が「OK」や「はい」の様に違う場合がありますが、どちらの場合でもAccept()で問題無く動作します。

ちなみに冒頭の画像の様に「OK」しか存在しないアラートの場合、「Accept()」、「Dismiss()」のどちらでもOKを押した事になる様です。

ちょうど良いサンプルが無かったので試してはいませんが、何か入力する必要がある場合はSendKeysメソッドも使用する事ができます。

今度は「アラートが表示されていなかった場合」を想定してみます。

アラートが表示されていない状態で「SwitchToAlert」を使うとどうなるかというと・・・

この様にエラーが返ってきてしまいます。

これは存在しないアラートオブジェクトに対して「Accept()」を要求したからではなく、「SwitchToAlert」の時点で「アラートが存在しなかった場合は no such alert のエラーを返す」という仕組みになっている様です。

アラートの出現が確実でない場合はエラートラップを用意しておいた方が良いですね。

関連記事と広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする