我已经阅读了很多关于使用VBA点击IE中的链接的信息,但我不能让它在我的情况下工作。 相关的HTML代码如下:
<div id="LinkButton_3" widgetId="LinkButton_3">
<a class="Row_Icon" data-dojo-attach-point="linkNode" data-dojo-attach-event="onClick:_onLinkButtonClicked">Company XYZ. - #12345</a>
</div>
我尝试过的VBA代码有三种不同的尝试,如下所示:
Dim ieApp As SHDocVw.InternetExplorer
Dim ieDoc As MSHTML.HTMLDocument
Dim button As HTMLInputButtonElement
Dim div As HTMLDivElement
' Create a new instance of IE
Set ieApp = New InternetExplorer
' Uncomment this line for debugging purposes.
ieApp.Visible = True
' Go to the page we're interested in.
ieApp.Navigate "MyURL.com"
Do While ieApp.Busy: DoEvents: Loop
Do Until ieApp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
Set ieDoc = ieApp.Document
' Try #1.
' Nothing happened on the web page after these 3 lines were executed.
Set button = ieDoc.getElementById("LinkButton_3")
button.Focus
button.Click
' Try #2
' Nothing happens - button is not clicked.
Set div = ieDoc.getElementById("LinkButton_3")
div.FireEvent "onClick"
' Try #3
' Nothing happens - button is not clicked.
div.Click
' Close the instance of IE.
ieApp.Quit
' Clean up.
Set ieApp = Nothing
Set ieDoc = Nothing
对于我可能做错了什么或其他建议的任何想法都将非常感激。
TMC
答案 0 :(得分:2)
您还可以使用#LinkButton_3 a
的CSS querySelector。这是元素内带有a
id
的{{1}}标签。 “#”表示LinkButton_3
。 “ a”表示其中的id
标签。
.querySelector
方法属于HTMLDocument。
您可以这样做:
a
答案 1 :(得分:1)
<div id="LinkButton_3" widgetId="LinkButton_3">
<a class="Row_Icon" data-dojo-attach-point="linkNode" data-dojo-attach-event="onClick:_onLinkButtonClicked">Company XYZ. - #12345</a>
</div>
你要点击的是锚(a)标签,而不是div。因此,您可以找到带有其ID的div,然后单击其中唯一一个带有
的子项button.Children(0).Click