我无法模拟div元素上的click事件。 HTML代码就是这个:
<div id="export" data-export="true" data-timespan="">
<button class="btn btn-default ladda-button" type="button" data-style="expand-right" data-spinner-color="#8899a6">
<span class="Icon Icon--featherDownload"></span>
<span class="ladda-label">
Exportar datos
</span>
<span class="ladda-spinner"></span></button>
<div class="hidden error server Callout Callout--danger">
<p>Ocurrió un problema al exportar tus datos, inténtalo de nuevo más tarde.</p>
</div>
</div>
在网页中,只是一个点击时下载文件的按钮。没有网址。但是在检查代码之后,div元素是什么触发了click事件。看图像。
那&#34; g.handle&#34;触发js.file形成网站。
我的vba代码非常适合在网站上做其他事情,但我无法完成这项任务。
我已经尝试了所有这些选项:
Set div = HTMLDoc.getElementById("export")
div.FireEvent ("onclick")
div.Click
HTMLDoc.all.Item
Call HTMLDoc.parentWindow.execScript("g.handle", "JavaScript")
没有任何作用。我现在被封锁了,我不知道该怎么办。也许这没有解决方案?我几乎不知道HTML,我对Javascript有一点想法。但它必须有一个解决方案,因为如果我手动执行,我点击该DIV,等待几秒钟并下载我的文件。
提前致谢。欢迎任何帮助。
答案 0 :(得分:2)
您没有指定突出显示的部分是否是该按钮的html代码,但是从它看来它不是。
您可以获取按钮的班级名称。该名称可能是唯一的,也可能不是唯一的,并且很难知道如果没有看到整个html代码,但您可以将下面的btn
变量设置为该类名的第一个实例。如果您的html代码中有多个类名,那么您将需要使用For Each...Next
语句来迭代它们(除非您知道实例编号)。
因此,我们将使用您班级的第一个实例,因此最后附加(0)
的原因。
Sub Test()
Dim ie As New InternetExplorer, HTMLDoc As HTMLDocument, btn As Object
ie.navigate Url 'whatever this may be
' Some code to wait for your page to fully load
Set HTMLDoc = ie.document
Set btn = HTMLDoc.getElementsByClassName("btn btn-default ladda-button")(0)
btn.Click
End Sub