我正在尝试编写一个宏,以便从门户网站访问数据,在该门户网站上,我需要启动网站并单击“在excel中打开”按钮。
我已经很好地打开了网页,但我不能不点击链接。我的理解是,我应该能够做一些类似的事情:
BrowswerObject.Document.ElementID.Click但是我不确定正确的元素和编码是什么。在一个网页上,当我检查元素时,它有这样的代码:
<A onclick=ur_Button_click(event); tabIndex=0 id=BUTTON_TOOLBAR_STANDARD_btn7_acButton title="Open in Excel" class=urBtnStd onkeydown=ur_Button_keypress(event); style="OVERFLOW: visible; TEXT-ALIGN: center" href="javascript:void(0);" ct="B" ti="0" st="" ocl="sapbi_page.sendCommandArray([['GUID','11',0],['NOUILOCK','X',0],['BI_COMMAND_TYPE','ABSTRACT',0]],event);">Open in Excel</A>有没有人能指出我应该关注的是什么?
编辑:我已尝试getElementByID,但遇到此错误:对象‘IWebBrowser2’的方法‘Document’失败
示例代码是:
Dim ie As Object
Set ie = CreateObject("Internetexplorer.Application")
ie.Visible = True
ie.Navigate *Link*
ie.document.getElementById("BUTTON_TOOLBAR_STANDARD_btn7_acButton ").Click发布于 2018-06-08 20:43:18
根据页面上有多少相似元素,您可以尝试使用CSS选择器
下面的代码将选择您需要的HTML代码
a[onclick*='ur_Button_click(event)']CSS查询

VBA:
ie.document.querySelector("a[onclick*='ur_Button_click(event)']").Click如果有多个匹配项,您可以使用:
ie.document.querySelectorAll("a[onclick*='ur_Button_click(event)']") 返回匹配项的nodeList,然后通过索引访问来单击适当的项。
关于CSS selectors的信息
发布于 2016-07-14 19:47:26
你说得对,应该是这样的。。。
For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")
If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
Next有关更多信息,请访问http://vbadud.blogspot.com/2009/08/how-to-login-to-website-using-vba.html#gurMeXG3KmWvFUMx.99
查看按钮ID名称的最好方法是当您在网站上时点击F12。如果您使用火狐,而F12什么也不做,请下载Firebug。
https://addons.mozilla.org/en-US/firefox/addon/firebug/
如果您使用IE,但点击F12时没有任何反应,请下载并安装IE开发人员工具。
https://msdn.microsoft.com/en-us/library/bg182326(v=vs.85).aspx
这些工具可以让你很容易地看到页面背后的代码,而且一切都是高度交互的,所以这些东西真的很容易使用。
祝你好运!
https://stackoverflow.com/questions/38223246
复制相似问题