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 のエラーを返す」という仕組みになっている様です。
アラートの出現が確実でない場合はエラートラップを用意しておいた方が良いですね。
コメント
[…] 2021.12.03 Seleniumでアラートポップアップのボタンを押す方法Seleniumでブラウザ操作中… 開発 Selenium シェアする Twitter Facebook LINE コピー […]