excel - 如何使用 VBA 在 Internet Explorer 中单击按钮

标签 excel vba internet-explorer web-scraping

我看到了一些示例,这些示例解释了如何通过 VBA 在 Internet Explorer 中单击按钮。但是,我需要使用的网站无法正常工作。
*它没有“id”。我看到了函数 querySelector,但它并没有很好地工作。
网站:http://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/TxRef1.asp

Sub Download()

Dim user, password As Variant

Set IE = CreateObject("InternetExplorer.Application")
    IE.navigate "http://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/TxRef1.asp"
    IE.Visible = True

While IE.Busy
    DoEvents
Wend

    Application.Wait (Now + TimeValue("00:00:02"))
    'Preencher o Login e Senha
    IE.Document.querySelector("img[src='images/toolbar/b_edit.gif']").Click

End Sub

最佳答案

您的选择器错误

html是

<img style="CURSOR:HAND" src="http://www.bmf.com.br/bmfbovespa/images/comum/btoExcel.gif" align="absmiddle" hspace="0" onclick="salvaxls()">

您可以使用以下属性 = 值选择器
[onclick='salvaxls()']

您还可以将 $ 与运算符一起使用并以 src 为目标
[src$='btoExcel.gif']

使用适当的页面加载等待您有如下
Option Explicit
'VBE > Tools > References:
' Microsoft Internet Controls
Public Sub RetrieveInfo()
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer

    With ie
        .Visible = True
        .Navigate2 "http://www2.bmf.com.br/pages/portal/bmfbovespa/boletim1/TxRef1.asp"

        While .Busy Or .readyState < 4: DoEvents: Wend

        .document.querySelector("[src$='btoExcel.gif']").Click

        Stop

    End With
End Sub

有很多existing answers on SO关于如何与保存/打开对话框交互。就个人而言,我更喜欢使用 selenium basic 自动化并使用 Chrome 来完全避免这个问题

关于excel - 如何使用 VBA 在 Internet Explorer 中单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55654494/

相关文章:

python - 获取按索引定向的嵌套字典中的键和值列表

java - 如何使用apache POI在excel中绘制圆形

excel - 如何在子 b 中使用子 a 中找到的值

ms-access - Dlookup 的问题

javascript - 删除IE中的窗口属性

excel - 删除空白行直到 LastRow 变量

excel - 查找指定日期范围内的最大值

excel - 尝试为变量赋值时 VBA 运行时错误 1004 “Application-defined or Object-defined error”

javascript - 使用 jQuery,IE<9 无法将元素束附加到文本节点。这是 jQuery 错误吗?

html - 为什么 IE8 不加载我的 eot 文件?