【发布时间】:2016-11-18 07:03:55
【问题描述】:
我正在尝试单击网站中的一个选项卡,该选项卡由似乎是鼠标事件的事件激活。这是html的sn-p:
<frame name ="nav">
<body><div id="tab2flyover0"
onmouseover="document.getElementById('tab2flyover0DivShim').style.width = document.getElementById('tab2flyover0').offsetWidth;
onmouseout="document.getElementById('tab2flyover0').style.visibility='hidden';document.getElementById('tab2flyover0DivShim')
onmouseover="document.getElementById('tab2_tab2Cell0')onmouseout="document.getElementById('tab2_tab2Cell0')
onclick="parent.frames[0].changeTopTabs('tab2TableDetail') parent.frames[0].changeContentFrame('/MISO/DART/selectDARTParticipant.do');">
<p id="tab2_tab2flyover0text0" style="color: rgb(255, 153, 0);">Select Party</p>
代码标签“p”的最后一行是我“检查元素”时需要用到的地方。
下面是到目前为止我的 vba 代码的 sn-p:
Sub scrape()
Dim htmldoc As MSHTML.IHTMLDocument 'Document object
Dim eleColtr As MSHTML.IHTMLElementCollection 'Element collection for tr tags
Dim eleColtd As MSHTML.IHTMLElementCollection 'Element collection for td tags
Dim eleRow As MSHTML.IHTMLElement 'Row elements
Dim eleCol As MSHTML.IHTMLElement 'Column elements
Dim ieURL As String 'URL
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
With ie
.
Shell "wscript.exe ""C:\Users\Ar\Desktop\vbscript.vbs"""
Do Until .readyState = 4
DoEvents
Loop
Set htmldoc = ie.document
Set dar = htmldoc.frames("nav").document.getElementById("tab2_tab2flyover0text0")
dar.Click
Do Until .readyState = 4
DoEvents
Loop
Application.Wait (Now + TimeValue("00:00:02"))
.document.forms(0).submit
End With
End Sub
我收到的错误是:“对象 JScriptTypeInfo 的方法‘框架’失败”。
我以前从未处理过鼠标事件,所以也许这就是我遇到问题的地方?
【问题讨论】:
-
需要更多代码...
-
Tim,我已经包含了所有的 vba 代码,谢谢!
-
错误出现在“Set dar”行。
-
你到底想做什么?我认为问题的标题需要改进。
-
我基本上只是想点击网站中的一个标签。将鼠标悬停在选项卡上时会拉出一个菜单。因此,我需要从将鼠标悬停在选项卡上后拉出的菜单中单击一个项目。将鼠标悬停在标签上后,我无法单击弹出的菜单。
标签: javascript html vba