excel VBA如何在IE11上点击div的onclick事件

时间:2015-07-04 14:39:21

标签: excel vba

我已搜索并搜索过但未找到解决此问题的任何解决方案,

如何触发div内的onclick事件?我通过测试它的标题和getattribute来获得一切正确但它不会点击。

IE.document.getElementById("btn_header").FireEvent ("onclick")
IE.document.getElementById("btn_header").click
IE.document.getElementById("btn_header").parentElement.click

网页代码

<td>
    <div id='btn_header' title='BTN' onclick="window.open('http://www.google.com','_blank');"></div>
</td>

我还看到一些网站说Fireevent由于某些原因不能与IE11合作,还有其他替代方案吗?

2 个答案:

答案 0 :(得分:1)

div.FireEvent "onclick"应该有效(以下使用IE11测试的示例)。 也许你的div是空的(什么都没有点击?)。

HTML用于测试代码here

' Add reference to Microsoft Internet Controls (SHDocVw)
' Add reference to Microsoft HTML Object Library

Sub TriggerDivClick()
    Dim ie As SHDocVw.InternetExplorer
    Dim doc As MSHTML.HTMLDocument
    Dim div As HTMLDivElement
    Dim url As String

    url = "file:///c:/temp/divOnClick.html"
    Set ie = New SHDocVw.InternetExplorer

    ie.Visible = True
    ie.navigate url

    While ie.Busy Or ie.readyState <> READYSTATE_COMPLETE
        DoEvents
    Wend

    Set doc = ie.document
    Set div = ie.document.getElementById("btn_header")

    div.FireEvent "onclick"
    ie.Quit

    Set ie = Nothing
End Sub

答案 1 :(得分:1)

您也可以尝试直接通过以下方式调用脚本:

IE.document.parentWindow.execScript "window.open('http://www.google.com','_blank');", "javascript"