質問: ### 前提・実現したいこと はじめて質問させていただきます。 私は現在、Selenium basic (VBA) でIEの自動化プログラムを作成しています。 具体的にはウェブページのフォームにエクセルのデータを自動で入力して、 最後に送信ボタンを押して送信するというものです。 送信ボタンを押した際に、javascriptのonclickでダイアログが出現し、 処理を続行しますか?「はい」or「いいえ」と聞かれ、 「はい」を押すと処理が続行されます。 ### 発生している問題・エラーメッセージ 問題はそのダイアログをどのように操作するかということです。 以下に似たような質問があり、試したのですが、 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」と出て、 動作しませんでした。 Selenium basic (VBA) でこうしたダイアログや、ポップアップウインドウのように、別のウインドウに切り替えて操作することは可能なのでしょうか。 ご教授いただけると幸いです。 よろしくお願いいたします。 ### 該当のソースコード driver.SwtichTo.Alert.Accept
回答: SendKeysで動かすのは安定性に欠けるので、やめたほうが無難でしょう。 ポップアップウィンドウについてはわからないのですが、ダイアログに関しては操作することができます。 以下のような方法になります。 ``` sub seleniumでダイアログを操作() dim objIE as IEDriver set objIE = New IEDriver objIE.start ' ダイアログが表示されるような処理 'Alert型としてダイアログを取得 dim objAlert as alert set objAlert = objIE.SwitchToAlert() with objAlert 'OKを押す .accept 'cancelを押す .dismiss '入力する .sendkeys "abcあいうえお" end with end sub ``` ちなみに、seleniumのsendkeysメソッドは、キーの入力を行うのではなく、webページの要素に直接文字列を流し込むようなので、安定してます。 他のAlertクラスのメソッドとかは、オブジェクトブラウザ(F2)で確認してみてください。