我经常使用 VBA,但在 IE 自动化方面我仍然是初学者。
我需要为我的公司创建一个代码来单击特定网站上的“按钮”。
这个按钮会打开一个小菜单,我需要在其中选择一些东西(我想我稍后会处理)。问题是,该按钮没有显示任何 ID 或名称,它是一个跨度,我无法让它单击它。
下面是我按下 F12 并检查按钮上方的元素时的 HTML:
<span class="search_for_watchers">
<a href="/watchers/new?project_id=pendencia" data-method="get" data-remote="true">Procurar por outros observadores para adiconar</a>
</span>
我尝试了很多在互联网上找到的建议。我尝试通过 ID、名称、类名等获取元素,但没有成功。
下面是我正在使用的代码:
Sub Automate_IE_Load_Page()
Dim i As Long
Dim URL As String
Dim ie As Object
Dim objElement As Object
Dim objCollection As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
URL = "Examplesite.com"
ie.Navigate URL
Application.StatusBar = URL & " is loading. Please wait..."
Do While ie.READYSTATE = 4: DoEvents: Loop
Do Until ie.READYSTATE = 4: DoEvents: Loop
Application.StatusBar = URL & " Loaded"
botao = ie.Document.getElementsByClassName("search_for_watchers")
botao.Click
End Sub
它没有显示任何错误..它只是没有打开我想要的子菜单,因此没有单击该按钮。
谢谢!
最佳答案
getElementsByClassName 是复数;即它代表一个集合。以下表示具有此类的第一个对象,然后单击其中的第一个 anchor 标记。
ie.Document.getElementsByClassName("search_for_watchers")(0).getElementsByTagName("a")(0).click
如果你想给元素分配一个对象var,然后用这个var点击,你需要Set the var。
关于excel - IE上的VBA单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48827975/