2014年9月1日月曜日

【VBS】InternetExplorerを操作する(URL表示・Form操作・イベント実行・JavaScript実行)

定例的にブラウザを使って実施する作業をスクリプトで自動化する。

InternetExplorerオブジェクトを使うと、Tokenを使用して画面遷移の制限をかけているWebシステムの自動化をしやすい。
JavaScriptで入力チェック+Hiddenで区分値ゴリゴリ変更してるシステムって面倒くさい。。。




以下、スクリプトコード
※コメント補足やURLなどの固有情報は、投稿時に追記・変更しているので、このまま動く保証はなし。

'====================================================================
Option Explicit

'【1】InternetExplorerオブジェクトを作成
Dim objIE Set objIE = CreateObject("InternetExplorer.Application")

'【2】作成したIEウィンドウサイズ調整
objIE.Width = 600
objIE.Height = 800

'【3】IEの表示位置調整
objIE.Left = 1200
objIE.Top = 100

'【4】IE表示設定
'True:表示する
objIE.Visible = True

'【5】指定URLへ移動(表示)
objIE.Navigate "URL"
'例)
'objIE.Navigate "http://www.google.co.jp"

'【6】ページの読み込みが終わるまで待機
Do Until objIE.Busy = False
   '250ミリ秒待機
   WScript.sleep(250)
Loop'

'★
'この時点でIEは目的のURLが表示されている


'【7】BODYのHTMLを取得(デバッグ用:ちゃんとResponseを受信したか確認)
'Dim strBody
'strBody = objIE.Document.Body.InnerHtml
'WScript.echo strBody


'★
'操作

'【8】Form操作:コントロールに値セット
objIE.Document.フォーム名.コントロール名.value = "test"

'【9】コントロールのイベント実行
objIE.Document.フォーム名.コントロール名.FireEvent ("イベント")
'イベント: onchange, onblur, onkeydown, onfocus, onclick....

'【10】JavaScript実行
Dim pw As HTMLWindow2
Set pw = objIE.Document.parentWindow
pw.execScript "関数()"



'★終わりに
'IE終了
objIE.Quit

'オブジェクトの破棄
Set objIE = Nothing



'====================================================================


前回の投稿では、このスクリプトの実行時に発生した「エラーを特定できません」のエラーへの対処をメモ済み。

0 件のコメント:

コメントを投稿