我看到了一些示例,这些示例解释了如何通过 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/