我收到类似于this question here的请求,我刚刚找到并正在调查this request here as well。我正在尝试构建一个VBA宏来抓取一些网络数据,我已经通过登录屏幕,但现在我被卡住了,因为页面似乎是用javascript写的,我完全不熟悉如何使用它。我对HTML非常模糊,并且一直在教我自己。下面是我的VBA到目前为止,取消的代码行显示我尝试过的功能无效。我正在尝试做的是点击“报告”链接,该链接位于由onmouseover激活的名为“我的Sequentra”的下拉菜单下。谢谢你的帮助。
Sub SingleSiteReportPull()
Dim ie As Object
Dim form As Variant, button As Variant
Set ie = CreateObject("InternetExplorer.Application")
'''''Set input boxes for username, password, & site to pull report for'''''
myusername = InputBox("Enter Your Sequentra Username")
mypassword = InputBox("Enter Your Sequentra Password")
searchsite = InputBox("Which site would you like to pull a report for?")
'''''Go to webpage'''''
With ie
.Visible = True
.navigate ("https://www.sequentra.net/seq-security/ssoLogin.go")
While ie.ReadyState <> 4
DoEvents
Wend
'''''enter username & password'''''
On Error Resume Next
ie.document.getelementsbyname("j_username").Item.innertext = myusername
ie.document.getelementsbyname("j_password").Item.innertext = mypassword
'''''submit login info'''''
With appIE
ie.document.forms(0).submit
End With
'''''click through menus to reports'''''
'Set frms = ie.document.getelementsbyTagname("FORM")
'Set button = form(0).onsubmit
'form(0).submit
'Set link = ie.document.getelementsbytagname("a")
'For Each l In link
' If link.classname = "appReportsShow.do" Then
' link.Click
' Exit For
'End If
'Next l
'ie.documents.parentWindow.execScript "loadFrame('appReportsShow.do')", "JavaScript"
'Do While ie.busy: DoEvents: Loop
End With
Set ie = Nothing
End Sub
以下是我正在查看的页面源代码:
<li class="clsTopMenuItem active" onmouseover="expandTopMenu(this)" onmouseleave="collapseTopMenu(this)"><a href="javascript:void(0);">My Sequentra</a>
<ul style="display: none;">
<li class="clsSubMenu" onmouseover="expandMenu(this)" onmouseleave="collapseMenu(this)"><a onclick="loadFrame('javascript:goHome()', this, {isNewWindow: false, width:-1, height:-1})" href="javascript:void(0);">Home</a>
</li>
<li class="clsSubMenu" onmouseover="expandMenu(this)" onmouseleave="collapseMenu(this)"><a onclick="loadFrame('appReportsShow.do', this, {isNewWindow: false, width:-1, height:-1})" href="javascript:void(0);">Reports</a>
</li>
<li class="clsSubMenu" onmouseover="expandMenu(this)" onmouseleave="collapseMenu(this)"><a onclick="loadFrame('notificationMyAlertListShow.go', this, {isNewWindow: false, width:-1, height:-1})" href="javascript:void(0);">My Alerts</a>
</li>
</ul>
</li>
答案 0 :(得分:1)
找到similar issue on ozgrid,将其用作基点并让它点击。解决方案如下。
ie.document.all.Item
Call ie.document.parentWindow.execScript("loadFrame('appReportsShow.do')", "JavaScript")
.Click