IE页面上的VBA点击按钮

时间:2016-02-09 19:35:26

标签: excel vba explorer

我要做的是打开一个网站,然后按一个按钮。我不能让它工作,所以我要求你们所有经验丰富的程序员!

按钮xml记录是:

Sub IE_Auto()


    Dim i As Long
    Dim IE As Object
    Dim objElement As Object
    Dim objCollection As Object

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

    Set elems = IE.Document.getElementsByTagName("button")
        For Each e In elems
            If e.Name = "Hit Me" Then
                e.Click
                Exit For
            End If
     Next e
End Sub

我想按的按钮名为: HIT ME

我使用的代码是:

{{1}}

1 个答案:

答案 0 :(得分:2)

为什么不使用getElementByID("z_e6_mm!b")方法返回该按钮的实例。元素 id 在文档中是唯一的,不需要迭代。

Dim btn as Object
Set btn = IE.Document.getElementByID("z_e6_mm!b")
btn.Click

注意:可能不适用于IE的某些版本。

另外值得注意的是,您可能会遇到一个简单的区分大小写比较错误的问题,并且永远不会点击按钮,因为:"Hit Me" != "HIT ME"。您可以通过强制对按钮文本进行UCASELCASE评估来控制此操作,但这似乎不如使用ID属性可靠。

另请注意:这不是元素的.Name,而是.InnerText

正如您所看到的,ID属性正在发生变化,因此您无法可靠地对其进行编程。在这种情况下,您将进行强力迭代,并比较一些非唯一属性,如innerText

Dim btn as Object
For each btn in IE.Document.getElementsByTagName("button")
    If btn.innerText = "**HIT ME**&nbsp;" Then '<~~~ MODIFY AS NEEDED  ###
        btn.click
        Exit For 'break out of the loop
    End If
Next