0

我对 VBScript 很陌生,我正在尝试通过 CRA 网站http://www.cra-arc.gc.ca/esrvc-srvce/tx/bsnss/pdoc-eng.html在 excel中自动进行一些工资计算. 几天来我一直在试图解决这个问题,但没有运气。我想我的问题很简单:我试图点击上面网站页面底部的“我接受按钮”。

我编写的代码如下,但对于以下行,我不知道如何实际单击按钮。无论我尝试什么,我总是在这里遇到错误。

 objIE.Application.document.getElementById("??????").Click

下面的 HTML 代码没有 ID。我还尝试了其他各种方法,例如 getElementByType、getElementByValue,但没有成功

VBScript

Sub test()

Set objIE = CreateObject("InternetExplorer.Application")

objIE.Application.Visible = True
objIE.Application.navigate "http://www.cra-arc.gc.ca/esrvc-srvce/tx/bsnss/pdoc-eng.html"

Do While objIE.Application.Busy Or _
    objIE.Application.readyState <> 4
    DoEvents
Loop

objIE.Application.document.getElementById("??????").Click

Do While objIE.Application.Busy Or _
    objIE.Application.readyState <> 4
    DoEvents
Loop

End Sub

HTML 代码

<div class="alignCenter">
<input type="button" title="I accept - Begin the calculation" value="I accept" onclick="parent.location='https://apps.cra-arc.gc.ca/ebci/rhpd/startLanguage.do?lang=English'" />
<input type="button" title="I do not accept - Return to Payroll" value="I do not accept" onclick="parent.location='/tx/bsnss/tpcs/pyrll/menu-eng.html'" />
</div>

我会很感激别人的帮助。

谢谢,

马修

4

1 回答 1

2

请注意 VB/VBADoEvents函数在 VBScript 中不可用。但是,这是工作代码。

Call test

Sub test()

    With CreateObject("InternetExplorer.Application")

        .Visible = True
        .Navigate "http://www.cra-arc.gc.ca/esrvc-srvce/tx/bsnss/pdoc-eng.html"

        Do While .Busy Or .readyState <> 4
            WScript.Sleep 50
        Loop

        Set oInputs = .Document.getElementsByTagName("input")

        For Each elm In oInputs
            If elm.Value = "I accept" Then
                elm.Click
                Exit For
            End If
        Next

        Do While .Busy Or .readyState <> 4
            WScript.Sleep 50
        Loop

        End With

End Sub
于 2013-02-12T00:07:46.983 回答