こんにちは、blueです。
前回はSeleniumVBAのメソッド一覧について説明しました。
前回の記事はこちら

今回からはブラウザ、すなわちWebDriverに関するメソッドについて説明します。
なおWebDriverに関するメソッドは以下の様なものがあります。
- 通常処理(操作、取得)
- アラート処理
- 待機処理
今回の記事ではアラート処理に関するものを載せていますので参考にしてください。
なお、2022年9月以降インストール方法の変更により変数の宣言方法が変わっています。
詳しい記事はこちらをご確認ください。
VBAを使ったものではありませんが、Seleniumを勉強する為の基本的な書籍です。各言語における基本的なメソッド一覧も記載されていますのでコードを書く際の参考になります。
アラートダイアログのOKを押す
以下の様なアラートダイアログのOKを押すにはSwitchToAlertメソッドとAccpetメソッドを使用します。

コードは以下になります。
Dim driver As New WebDriver
driver.SwitchToAlert.Accept
SwitchToAlertメソッドでアラートダイアログに移動、AcceptメソッドでOKを押すことになります。
この方法でポップアップで表示されたアラートを処理することができます。
アラートダイアログのキャンセルを押す
以下の様なアラートダイアログのキャンセルを押すにはSwitchToAlertメソッドとDismissメソッドを使用します。

コードは以下になります。
Dim driver As New WebDriver
driver.SwitchToAlert.Dismiss
DismissAlertメソッドでアラートダイアログに移動、DismissメソッドでOKを押すことになります。
ポップアップ表示されたアラートをキャンセルすることができます。
アラートダイアログのテキストを取得する
アラートダイアログのテキストを取得するにはSwitchToAlertメソッドとGetTextメソッドを使用します。

コードは以下になります。
Dim driver As New WebDriver
Debug.Print driver.SwitchToAlert.GetText
GetTextメソッドには引数は存在しません。
上記のダイアログに対して実行するとイミディエイトウィンドウに以下のテキストが出力されます。

アラートダイアログにテキストを入力する
アラートダイアログにテキストを入力するにはSwitchToAlertメソッドとSendKeysメソッド使用します。

コードは以下になります。
Dim driver As New WebDriver
driver.SwitchToAlert.SendKeys "***"
SendKeysメソッドの第一引数には入力したいテキストを文字列型で記載します。
入力後、Acceptメソッドを使用することで、OKすることができます。
アラートダイアログの存在を確認する
アラートダイアログ存在を確認するにはIsAlertPresentメソッドを使用します。
コードは以下になります。
Dim driver As New WebDriver
Debug.Print driver.IsAlertPresent
IsAlertメソッドには引数は存在しません。
アラートが存在すればTrue,存在しなければFalseを返します。
今回のまとめ
今回はWebDriverのアラート処理に関するメソッドを紹介しました。
スクレイピングをする際にはアラート操作が必要になることもあります。ぜひサンプルコードを使ってみてください。
VBAを使ったものではありませんが、Seleniumを勉強する為の基本的な書籍です。各言語における基本的なメソッド一覧も記載されていますのでコードを書く際の参考になります。
SeleniumVBAに関する記事はこちら
【SeleniumVBA】初心者向けに導入方法についてわかりやすく説明します(Excel VBA)
【SeleniumVBA】スクレイピングで使うメソッドについて説明します。
【SeleniumVBA】Yahooメールへのログイン方法をわかりやすく説明する(Excel VBA)
【SeleniumVBA】スクレイピングで使うメソッドについて説明します2(Excel VBA)
【SeleniumVBA】スクレイピングをする為のメソッド一覧表
【SeleniumVBA】ブラウザを操作するメソッドについてサンプルコードを紹介します
【SeleniumVBA】2022年9月の更新に伴うコードの変更点について説明します。
【SeleniumVBA】アラート処理に関するメソッドについてコードを紹介します
【SeleniumVBA】待機処理に関するメソッドについてコードを紹介します
コメント
こんにちは。メソッドが以下のとおりに変更されています。
変更が多く大変ですが、更新をお願いします。
‘アラートダイアログのOKを押す
driver.SwitchToAlert.Accept
‘アラートダイアログのキャンセルを押す
driver.SwitchToAlert.Dismiss
‘アラートダイアログにテキストを入力する
driver.SwitchToAlert.SendKeys “***”
遅くなりました。更新しました!ありがとうございます!