我正在编写VBA代码,以便从用户那里获取滚动条符号,导航到一个网站,输入滚动条符号,然后单击相应的链接。
我研究了这个StackOverflow question and response,但是,我没有可以利用的内文值。
我的VBA代码:
Sub clicklick()
Dim ie As Object
Dim form As Variant, button As Variant
Set ie = CreateObject("InternetExplorer.Application")
ticker = InputBox("Enter Ticker Symbol: ")
With ie
.Visible = True
.Navigate ("http://www.SITE_URL.com")
While ie.ReadyState <> 4
DoEvents
Wend
ie.document.getElementsbyName("sSrchTerm").Item.innertext = ticker
End With
End Sub
该链接在页面源代码中如下所示:
<a class="hqt_button" href="javascript:void(0): onclick=HeaderBox.trySubmit()"></a>
元素似乎没有名称、innertext或id。如何点击该链接?
编辑:
Set Link = ie.document.getElementsByTagName("a")
For Each l In Link
If Link.classname = "hqt_button" Then
Link.Click
Exit For
End If
Next l
发布于 2014-07-09 02:40:08
尝试使用以下命令获取锚标签的集合:
GetElementsByTagName("a")
然后,使用尽可能多的逻辑迭代该集合,以确保您单击了正确的按钮。
For each l in ie.document.getElementsByTagName("a")
If l.ClassName = "hqt_button" Then
l.Click
Exit For
Next
如果有多个锚点具有相同的类名,您可以这样做:
If l.ClassName = "hqt_button" AND l.Href = ""javascript:void(0): onclick=HeaderBox.trySubmit()" Then
l.Click
Exit For
Next
或
如果您使用的是IE9+,则可以使用GetElementsByClassName
方法。
GetElementsByClassName("hqt_button")
发布于 2018-06-22 23:24:59
您还可以使用CSS selector
a.hqt_button[href='javascript:void(0): onclick=HeaderBox.trySubmit()']
"."
的意思是className。[]
包含一个属性。上面的代码是className hqt_button
,属性为href
,值为'javascript:void(0): onclick=HeaderBox.trySubmit()'
,在a
标记内。
CSS查询:
VBA中的语法:
CSS选择器是通过HTMLDocument的.querySelector
方法应用的。
ie.document.querySelector("a.hqt_button[href='javascript:void(0): onclick=HeaderBox.trySubmit()']").Click
https://stackoverflow.com/questions/24638533
复制相似问题