XPathでIEを操作
IEを操作する際にXPathでアクセスする方法。
JavaScript-XPathを使うので別途jsファイルが必要です。
Option Explicit main WScript.Quit ' テスト用 Sub main Dim xp, ie Set xp = New XPath ' IEを起動してgoogleを開く Set ie = WScript.CreateObject("InternetExplorer.Application") ie.visible = true ie.navigate "http://www.google.co.jp/" Do While(ie.Busy Or ie.readyState <> 4) WScript.Sleep 100 Loop ' XPathで検索を実行 xp.search("//input[@type='text']", ie.document)(0).value = "XPathでIEを操作" xp.search("//button[@name='btnK']", ie.document)(0).click End Sub '########################################################### ' XPath検索クラス ' [クラス名] ' XPath ' ' [関数] ' ○search(path as String, node as element) ' ・機能 ' 指定nodeを基にpathで表される要素の一覧を検索し返却する。 ' ・引数 ' path:XPath形式で指定。 ' node:検索の基となるノード。 ' ' ・戻り値 ' ArrayList:検索結果の一覧を返却。 ' 要素が存在しない場合でも空のArrayListを返す。 ' ArrayListのメンバはMSDN参照。 ' (Count、Item、Add、Remove、Containsなどが使える。 ' For Each item in ArrayList 〜 Next形式も可。) ' ' [制限事項] ' ・エラー処理は入れていません。 Class XPath ' xpath用のdocumentオブジェクト Private doc '---------------------------------------------------- ' コンストラクタ Private Sub Class_Initialize Dim script ' documentオブジェクトを作成 Set doc = WScript.CreateObject("htmlfile") doc.write "" ' xpathライブラリを読み込む ' ファイル読み込みで"script.text=〜"指定でもよい ' サンプルでは直アクセスで確認 Set script = doc.createElement("script") script.src = "http://svn.coderepos.org/share/lang/javascript/javascript-xpath/trunk/release/javascript-xpath-latest.js" ' documentに設定 doc.getElementsByTagName("head")(0).appendChild script End Sub '---------------------------------------------------- ' xpath指定での検索を実行 Public Function search(path, node) Dim ret, i ' 検索実行 Set ret = doc.Evaluate(path, node, null, 7, null) ' 検索結果をArrayListに格納 Set search = WScript.CreateObject("System.Collections.ArrayList") For i = 0 To ret.snapshotLength - 1 search.add ret.snapshotItem(i) Next End Function End Class
戻る