创建HTML DOM对象以访问html表单中的HTML对象

时间:2013-03-23 08:42:44

标签: dom vbscript

任何人都可以帮助我使用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.

2 个答案:

答案 0 :(得分:2)

没有“HTMLDOM”对象,因为HTML附带的内容比XML更多。它需要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

答案 1 :(得分: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 

输出: -

您好