3

VBスクリプトを使用してHTML DOMオブジェクトを作成するのを手伝ってくれる人はいますか? HTML フォームをナビゲートしてテキスト ボックスに値を入力するか、vb スクリプトと HTML DOm 関数を使用してドロップダウンから値を選択する必要があります。

XMl dom オブジェクトを作成するには、以下のステートメントを使用できることを知っています。そのため、以下のステートメントと同様のステートメントを使用して、HTML DOM を作成できます。

Set Xmlobj = CreateObject ("Microsoft.XMLDOm")

Set Htmlobj = CreateObject ("Microsoft.HtmlDom")  ' Is this avalibale when I tried it shows     error for object creattion, other workaround available.
4

2 に答える 2

2

HTML には XML よりも多くの要素が関連付けられているため、「HTMLDOM」オブジェクトはありません。テキスト HTML を意味のあるメモリ内ドキュメント オブジェクトに変換するには、JavaScript の処理、セッションの処理、CSS の処理、HTTP 要求、Cookie の処理、キャッシュなどが必要になります。

これらがすべて実装されていれば、完全なブラウザーが完成します。これが、そのような COM オブジェクトが存在しない理由です。

あなたのタスクは、COM オートメーションを介して Internet Explorer を直接使用できます。

Option Explicit

Dim IE, queryField

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True

IE.Navigate "http://www.google.com"

While IE.Busy Or IE.readyState <> 4
     WScript.Sleep 100
Wend

Set queryField = GetFormFieldByName(IE.document, "q")

If Not queryField Is Nothing Then
    QueryField.value = "test"
    QueryField.form.submit
End If

WScript.Sleep 5000
IE.Quit
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Function GetFormFieldByName(Parent, FindName)
    Dim FormFields, FormField

    Set GetFormFieldByName = Nothing
    Set FormFields = Parent.getElementsByTagName("INPUT")

    For Each FormField In FormFields
        If UCase(FormField.Name) = UCase(FindName) Then
            Set GetFormFieldByName = FormField
            Exit For
        End If
    Next
End Function
于 2013-03-23T09:22:09.307 に答える