VBA使用Internet Exporer单击项目
我的公司使用基于网络的报告系统,我正在尝试将数据自动导出到Excel。有一个带有文件>导出到XLS的标准下拉菜单,我想自动单击“导出”按钮下载报告 我读过其他关于点击按钮展开页面,或在表单中输入值等的帖子,但可能是因为按钮位于下拉菜单中,或者因为元素位于VBA使用Internet Exporer单击项目,vba,internet-explorer,web,screen-scraping,Vba,Internet Explorer,Web,Screen Scraping,我的公司使用基于网络的报告系统,我正在尝试将数据自动导出到Excel。有一个带有文件>导出到XLS的标准下拉菜单,我想自动单击“导出”按钮下载报告 我读过其他关于点击按钮展开页面,或在表单中输入值等的帖子,但可能是因为按钮位于下拉菜单中,或者因为元素位于iframe中,以前发布的解决方案都不适用于我 到目前为止: 我可以导航到该页面 我可以得到menuExportXLS元素 Debug.print打印正确的innerText 我的代码没有抛出任何错误 但我无法成功单击按钮下载文件。 或者,H
iframe
中,以前发布的解决方案都不适用于我
到目前为止:
- 我可以导航到该页面
- 我可以得到
元素menuExportXLS
打印正确的Debug.print
innerText
- 我的代码没有抛出任何错误
onclick
脚本可以触发下载,但我不知道如何在VBA中调用它。我很乐意让任何一种方法运行
子导出xlstest()
Dim应用程序作为InternetExplorerMedium
作为对象的Dim Obj
Set appIE=New InternetExplorerMedium
苏尔=”https://Site"
和阿皮
.导航sURL
.Visible=True
以
在appIE.Busy或appIE.ReadyState 4时执行
多芬特
环
Application.Wait(现在+时间值(“0:00:05”))
Set Obj=appIE.document.getElementsByTagName(“iframe”)(0.contentDocument.getElementById(“menuExportXLS”)
Debug.Print Obj.innerText
对象。单击
设置appIE=Nothing
端接头
您可以使用CSS选择器以元素为目标
appIE.document.getElementsByTagName("iframe")(0).contentDocument.querySelector("[onclick*='exportXLS']").Click
这是一个属性=值选择器,它以内容文档中具有
onclick
属性的第一个元素为目标,该属性包含值exportXLS
可能的重复项。(如果这一个不合适,那么还有很多其他的,这是一个非常常见的问题。)您将获得列表项,但单击处理程序位于子元素
上。可能尝试Obj.getElementsByTagName(“a”)(0)。单击不是对象吗?@Tim Williams我尝试过这个,但不幸的是它没有得到元素。我很确定这是因为元素在iframe
中,我很确定在一个框架中不会有任何影响-如果你可以得到列表项,你应该可以从该列表项中找到链接元素。。。
appIE.document.getElementsByTagName("iframe")(0).contentDocument.querySelector("[onclick*='exportXLS']").Click