1

嗨,我想出了一个代码,它将打开 Internet Explorer,导航到一个网站,输入用户 ID 和密码,最后单击登录按钮。

代码是:

Public Sub LOGIN()

    Dim objIE As SHDocVw.InternetExplorer 
    Dim htmlDoc As MSHTML.HTMLDocument 
    Dim htmlInput As MSHTML.HTMLInputElement
    Dim htmlColl As MSHTML.IHTMLElementCollection

    Set objIE = New SHDocVw.InternetExplorer

    With objIE
        .Navigate "https://website.co.in" ' Main page
        .Visible = 1
        Do While .READYSTATE <> 4: DoEvents: Loop
        Application.Wait (Now + TimeValue("0:00:02"))

        Set htmlDoc = .document
        Set htmlColl = htmlDoc.getElementsByTagName("INPUT")
        Do While htmlDoc.READYSTATE <> "complete": DoEvents: Loop
        For Each htmlInput In htmlColl
            If htmlInput.Name = "UserName" Or htmlInput.Type = "text" Then
                htmlInput.Value = "Adidas"
            Else
               If htmlInput.Name = "password" Then
                 htmlInput.Value = "Daddy123"

                End If
            End If
        Next htmlInput

        Set htmlDoc = .document
        Set htmlColl = htmlDoc.getElementsByTagName("input")
        Do While htmlDoc.READYSTATE <> "complete": DoEvents: Loop
        For Each htmlInput In htmlColl
            If Trim(htmlInput.Type) = "submit" Then
                htmlInput.Click
                Exit For
            End If
        Next htmlInput
    End With
End Sub

但由于我创建此脚本的网站不支持 Internet Explorer,我想在 Firefox 中打开它。我一无所知,到目前为止我还没有尝试过任何事情。请帮帮我。

4

1 回答 1

4

Firefox 不公开 COM 对象,因此无法像控制 IE 一样控制它。不过,您也许可以使用其他一些自动化工具来实现您的目标,例如SeleniumAutoIt

另一种选择可能是使用Fiddler之类的东西嗅探身份验证流量(即单击“登录”按钮时发生的通信) ,然后使用 VBScript 通过XMLHTTPRequest自动登录:

Set req = CreateObject("MSXML2.XMLHTTP.6.0")
req.open "POST", "http://www.example.org/", False
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send "field1=foo&field2=bar&..."
于 2013-03-26T11:38:47.900 回答