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

没有“HTMLDOM”对象,因为与 XML 相比,附加到 HTML 的内容要多得多。它将需要 JavaScript 处理、会话处理、CSS 处理、HTTP 请求、cookie 处理、缓存等来将文本 HTML 转换为有意义的内存中文档对象。

如果所有这些都实现了,那么您将拥有一个完整的浏览器。这就是为什么没有这样的 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 回答
1
Set oDoc = CreateObject("HTMLFILE")

oDoc.write "<html><head><title></title></head><body><div id='div'>hello</div></body></html>"

Response.Write oDoc.getElementById("div").innerHTML 

--

WScript.Echo oDoc.getElementById("div").innerHTML 

输出: -

你好

于 2013-08-15T14:26:28.250 回答