如何在VB中单击此按钮以重定向页面?

时间:2016-02-22 17:43:29

标签: javascript java excel vba excel-vba

鉴于下面的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

1 个答案:

答案 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