鉴于下面的html源代码,如何在VBA中单击它以重定向页面?我在Excel中创建一个宏,可以点击一个站点并从下一页抓取数据。
<DIV id=mopLYR>
<A onmouseover="javascript:k.src='/x.jpg';document.mopIMG.src=k.src;"
onmouseout="javascript:k.src='/x.jpg';document.mopIMG.src=k.src;"
href="javascript:mainMenuSubmit
('mop_mis');"><IMG border=0 name=mopIMG src="http://x.jpg"></A>
</DIV>
我的代码没有给我任何错误,但它没有重定向。我还试图创建一个循环来查找元素ID,但无法随身携带它。
Dim IE As Object
Dim div As HTMLDivElement
Set IE = New InternetExplorerMedium
IE.Visible = True
IE.navigate ("http://x.com.WisServlet")
'Wait for Load to finish
While IE.readyState <> "complete"
DoEvents
Wend
Set butn = IE.document.getElementById("mopLYR")
butn.Click
答案 0 :(得分:0)
您正在获取<div>
元素的ID,而不是超链接,因此“点击”不会对其起作用。
您需要引用超链接,但由于它没有'id'属性,您需要另一种方法来查找它。
首先尝试引用div
:
Set div = IE.document.getElementById("mopLYR")
然后在里面找到超链接。您将获得<a>
的集合,您需要遍历它以找到您的链接:
For Each btn in div.getElementsByTagName("a")
If btn.getAttribute("href") = "javascript:mainMenuSubmit('mop_mis');" Then
btn.Click
Exit For
End If
Loop