vbscriptでIE自動入力(途中で出てくるポップアップをクリックしたい)

このQ&Aのポイント
  • IE自動入力をしていくと、途中のクリックでポップアップが表示され、スクリプトが停止してしまいます。
  • ポップアップの内容は「セキュリティの警告」というタイトルで、要求には「はい(Y)」「いいえ(N)」「証明書の表示(V)」の選択肢があります。
  • 自動でポップアップをクリックするための方法を教えてください。
回答を見る
  • ベストアンサー

vbscriptでIE自動入力(途中で出てくるポップアップをクリックしたい)

IEで自動化入力をvbscriptで作っております。 次々に問題というか知識の無さでつまづいています。お知恵を貸してください。 IE自動入力をしていくと、途中のクリックで次画面に 進むところでポップアップが浮き上がりスクリプトが止まってしまいます。 ポップアップの内容は、 タイトルが「セキュリティの警告」 内容が「このサイトと取り交わす情報は、ほかの人から読み取られたり変更されることは ありません。しかし、このサイトのセキュリティ証明書には問題があります。、、、」 と出まして、 「はい(Y)」「いいえ(N)」「証明書の表示(V)」と選択肢があります。 手動で「はい」をクリックするか、Yキーを押すとまたスクリプトが進み始めます。 これを自動でクリックするためにはどうしたらいいんでしょうか。 いろいろ調べてこうして見ました。 Set wshshell=wscirpt.createobject("wscript.shell") wshshell.AppActivate("セキュリティの警告") wshshell.sendkeys "y" これでは、全く動きません。おそらくこのウィンドウにコントロールが行ってないと思います。 他の手立てを教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MidKnight
  • ベストアンサー率57% (20/35)
回答No.1

ポップアップが表示されるより早く、yが送られてしまってるんでしょう。 ポップアップが表示されるのを待たないとね。 Set wshshell=wscirpt.createobject("wscript.shell") 'セキュリティの警告が表示されるまで待つ Do Until wshshell.AppActivate("セキュリティの警告") WScript.Sleep 100 Loop 'セキュリティの警告が消えるまでyを送る Do While wshshell.AppActivate("セキュリティの警告") wshshell.sendkeys "y" WScript.Sleep 100 Loop 永久ループに陥らないように、適度にループ抜けを入れておけばいいでしょう。

rampower
質問者

お礼

自動化入力したいサイトにあわせて 教えていただいた改良を加えると上手く動きました。 ループ抜けもなんとかできているようです。たまにエラーがでますが。 ありがとうございました。

rampower
質問者

補足

ループ抜けって具体的にどう書けばいいでしょうか。 必ず「セキュリティ警告」がでるわけはないので、 まさに永久ループにはまりそうです。 一度クリックするとしばらくはセッションが残るのか 繰り返しスクリプトを走らせると聞いてこない場合がありまして。 とりあえずこれでやってみます。ありがとうございます。

関連するQ&A

  • VBSのsendkeysで日本語を出力したいです

    WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

  • VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法

    VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法を教えてください。 現在、下のような方法で行っているのですが応用が利かないので改善したいと思っています。 Set IE = CreateObject("InternetExplorer.Application") Set WshShell = CreateObject("WScript.Shell") IE.Visible = True IE.Navigate("https://サイトのURL") Do Until IE.Busy = False WScript.Sleep 1000 WshShell.SendKeys "y" Loop '(セキュリティの警告が出るため) WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "loginid" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "password" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WshShell.SendKeys "{ENTER}" 操作したいページのソースの一部を抜粋すると下記のようになっています。 テキストボックス <INPUT type="text" name="loginId" class="Necessary" size="20" maxlength="5" value="" tabindex="20"> ボタン <INPUT class="button10" type="button" name="sentaku" value="認証" onClick="javascript:execute・・・・略 うまく操作できる方法を教えてください。 よろしくお願いします。

  • WSHスクリプトでブラウザ更新

    教えてください。 WSHスクリプトでブラウザの更新をF5ではなくてControl + Rしたいのです。 Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 2000 WshShell.AppActivate "テスト" WScript.Sleep 2000 WshShell.SendKeys "^R" WScript.Sleep 2000 WScript.Echo "終了" 最初の一回目の実行時はできるのですが、それ以降更新してくれません。 よろしくお願いいたします。

  • Windows 7 でのWSH の挙動

    お世話になります。 msdnにある「電卓をアクティブにするサンプルを Vistaで実行すると、電卓がアクティブになり、 計算結果を吐き出しますが、 Windows7(Pro,SP1)で実行すると 最前面に電卓が出るものの アクティブになっていない上に、 複数の電卓がどんどん立ち上がってきます。 Vistaと7で、プロセス(?)の管理が 変わっているのだと思います。 7でも電卓をアクティブにするには、 どうすればいいのでしょうか? 以下コードです。 ================================================ set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 ================================================

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • WSHを使いTELNETで%USEPROFILE%\デスクトップにファイルを複写したい

    WSHをはじめたばかりです。TELNETで接続した現在の相手のデスクトップにファイルを複写させたいと考えています。 DOSのように指定したのですがカナ文字や%がうまく渡されていないようなのですがどのように設定すればよいか教えてください。 下記のように作成しています。 よろしくお願いします。 set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "確認" WScript.Sleep 1000 adr = InputBox("端末IPアドレスを入力してください。", 1) adr = "telnet " & adr & "~" rem telnet ホスト名 WshShell.SendKeys adr WScript.Sleep 2000 rem ユーザー名 WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem パスワード WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem コマンド WshShell.SendKeys "cd %USEPROFILE%\デスクトップ~" WScript.Sleep 3000 rem あとCOPYによる複写コマンドの記述

  • IEのポップアップがおかしい

    IEのポップアップの設定がおかしい?ので教えてください。 ポップアップが開くリンク先をクリックした場合に、 本来ならば元画面はそのまま&新しくポップアップが開くと思うのですが、 元画面がポップアップの画面に変わってしまうようになりました。 (新しく開くポップアップと全く同じ内容) 右クリックで「新しいウィンドウで開く」にすると、以前と同じように使えます。 ポップアップブロックを有効にしても無効にしても同じ。 IE6でもIE7でも現象は変わりません。 WINDOWS XP SP2です。 情報が足りなければ、後から補足します。

  • ポップアップ

    IE6 など。(その他でも結構です) 「セキュリティーの黄色い情報パー(ポップアップ)」が表示される場合。。。とは、どういうときなんでしょうか? ■「Flash」。 ■「Active X (コントロールパネル用?)」。 ■「JavaScript」。■「Script」などを使用すると、ポップアップの表示がでるんでしょうか?

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • VbscriptでIEのコントロール

    以下の2つのサイトを参考にIEの自動処理を作っています。 「IE 画面を、スクリプトで操作する (パソコン便利ツール集)」 http://makoto-watanabe.main.jp/htmlDOM.html 「WSH JScriptを使いこなそう ~キーボード操作~」 http://3rd.geocities.jp/kaito_extra/Source/KeybordCtrl.html そこで簡単なhtmlページを作り、javascriptの「confirm」を使って確認メッセージを表示しました。 この確認メッセージの「OK」か「キャンセル」をVbscriptの「SendKeys」を使ってコントロールしようとしてるのですが全く反応しません。 何がいけないのでしょうか? もちろん確認メッセージはアクティブの状態です。 開いたIEのオブジェクトなどでコントロールしないといけないのでしょうか? ちなみに、html内のjavascriptは次のようにしています。 <script Language="JavaScript"> <!-- confirm("よろしいですか?") //--> </script> Vbscriptは次の通りです。 Set objWshShell = Wscript.CreateObject("Wscript.Shell") Set objIE = CreateObject("InternetExplorer.Application")'IEの起動 objIE.Visible = True 'IEウィンドウを表示 siteurl = "http://テスト用のサイト/test.html" objIE.Navigate2 siteurl'指定ページを開く While objIE.ReadyState <> 4 Or objIE.Busy = True WScript.Sleep 1000 Wend objWshShell.SendKeys("{enter}") objIE.Quit Set objIE = Nothing WScript.quit

専門家に質問してみよう