首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在DIV元素上模拟Click事件

在DIV元素上模拟Click事件
EN

Stack Overflow用户
提问于 2018-01-11 01:33:49
回答 1查看 2.5K关注 0票数 3

我不能在div元素上模拟单击事件。HTML代码如下所示:

代码语言:javascript
复制
<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>

在网页中,只有一个按钮,点击后即可下载文件。没有URL。但是在检查代码之后,触发单击事件的是div元素。看看这张图。

Click to see image

"g.handle“触发了一个来自网站的js.file。

我的vba代码非常适合在网站上做其他事情,但是我不能完成这个任务。

我已经尝试了所有这些选项:

代码语言:javascript
复制
Set div = HTMLDoc.getElementById("export")
div.FireEvent ("onclick")
div.Click


HTMLDoc.all.Item
Call HTMLDoc.parentWindow.execScript("g.handle", "JavaScript")

毫无办法。我现在有点受阻,我不知道该怎么做。也许这没有解决方案?我对HTML几乎一无所知,对Javascript一无所知。但它必须有一个解决方案,因为如果我手动执行此操作,我会单击该DIV,等待几秒钟,然后下载我的文件。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-11 01:53:24

您没有指定突出显示的部分是否是按钮的html代码,但从外观上看,它似乎不是。

您可以获取按钮的类名。名称可能是唯一的,也可能不是唯一的,如果看不到完整的html代码,就很难知道这一点,但是您可以将下面的btn变量设置为该类名称的第一个实例。如果您的html代码中有多个类名,那么您将需要使用For Each...Next语句来遍历它们(除非您立即知道实例编号)。

因此,我们将使用您的类的第一个实例,因此在末尾附加了(0)的原因。

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48193044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档