如何在 HTML 代码中使用 VBA 调用 onClick?

How to call onClick with VBA in HTML code?

如何在 HTML 页面中调用 onClick

使用 Google,我得到了这个代码:

<img src="Imagens/lupa.gif" alt="Pesquisar Pasta" class="img" onclick="localizar();">

我正在使用这个 VBA 代码:

Sub FazerLoginSite()

Dim IE As Object
Set IE = CreateObject("InternetExplorer.application")
With IE
    .Visible = True
    .Navigate ("https://webseal.itau/j146/pjuridico/")
    While .Busy Or .ReadyState <> 4: DoEvents: Wend
    On Error Resume Next
    .document.getElementById("username").Focus
    .document.getElementById("username").Value = "987268556"

    .document.getElementById("password").Focus
    .document.getElementById("password").Value = ""

    .document.All("button1").Click
    On Error GoTo 0
    While .Busy Or .ReadyState <> 4: DoEvents: Wend

    While .Busy Or .ReadyState <> 4: DoEvents: Wend
    .document.getElementById("pasta").Focus
    .document.getElementById("pasta").Value = "140200586125"
    While .Busy Or .ReadyState <> 4: DoEvents: Wend
   
    While .Busy Or .ReadyState <> 4: DoEvents: Wend
    Set allInputs = IE.document.getElementsByTagName("input")
    For Each element In allInputs
        If element.getAttribute("src") = "Imagens/lupa.gif" Then
            element.invokemember ("OnClick")
            Exit For
        End If
    Next element
    While .Busy Or .ReadyState <> 4: DoEvents: Wend

    Debug.Print .LocationURL
End With

End Sub

如何点击此代码?在网站上,这是一张图片,代码的第一部分我设置了我的登录名和密码,我输入了一个数字进行搜索,这里称为“意大利面”,最后我试图点击这张图片。

不需要查找元素。您可以使用 execScript() 函数调用 onClick 正在调用的相同 JavaScript 函数:

IE.document.parentWindow.execScript "localizar();", "javascript"

CSS 选择器:

使用 CSS 选择器定位以下元素:

img[src='Imagens/lupa.gif']

这表示带有 img 标签的元素,其属性 src 的值为 'Imagens/lupa.gif'


CSS查询:


VBA:

您通过 documentquerySelector 方法应用选择器。

ie.document.querySelector("img[src='Imagens/lupa.gif']").Click