首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Excel VBA单击网页上的链接?

如何使用Excel VBA单击网页上的链接?
EN

Stack Overflow用户
提问于 2014-07-09 01:54:03
回答 2查看 62.6K关注 0票数 2

我正在编写VBA代码,以便从用户那里获取滚动条符号,导航到一个网站,输入滚动条符号,然后单击相应的链接。

我研究了这个StackOverflow question and response,但是,我没有可以利用的内文值。

我的VBA代码:

代码语言:javascript
复制
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

该链接在页面源代码中如下所示:

代码语言:javascript
复制
<a class="hqt_button" href="javascript:void(0): onclick=HeaderBox.trySubmit()"></a>

元素似乎没有名称、innertext或id。如何点击该链接?

编辑:

代码语言:javascript
复制
    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 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-09 02:40:08

尝试使用以下命令获取锚标签的集合:

代码语言:javascript
复制
GetElementsByTagName("a")

然后,使用尽可能多的逻辑迭代该集合,以确保您单击了正确的按钮。

代码语言:javascript
复制
For each l in ie.document.getElementsByTagName("a") 
    If l.ClassName = "hqt_button" Then
        l.Click
        Exit For
    Next

如果有多个锚点具有相同的类名,您可以这样做:

代码语言:javascript
复制
    If l.ClassName = "hqt_button" AND l.Href = ""javascript:void(0): onclick=HeaderBox.trySubmit()" Then
        l.Click
        Exit For
    Next

如果您使用的是IE9+,则可以使用GetElementsByClassName方法。

代码语言:javascript
复制
GetElementsByClassName("hqt_button")   
票数 10
EN

Stack Overflow用户

发布于 2018-06-22 23:24:59

您还可以使用CSS selector

代码语言:javascript
复制
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方法应用的。

代码语言:javascript
复制
ie.document.querySelector("a.hqt_button[href='javascript:void(0): onclick=HeaderBox.trySubmit()']").Click
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24638533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档