gpt4 book ai didi

vba - 模拟 DIV 元素上的 Click 事件

转载 作者:行者123 更新时间:2023-12-02 19:11:53 25 4
gpt4 key购买 nike

我无法模拟 div 元素上的单击事件。 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 to see image

“g.handle”会触发网站的 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,等待几秒钟并下载我的文件。

提前致谢。欢迎任何帮助。

最佳答案

您没有指定突出显示的部分是否是按钮的 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

关于vba - 模拟 DIV 元素上的 Click 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48193044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com