我对HTML相当陌生,因此请耐心等待。我正在使用Excel VBA与网站进行交互,以实现此交互的自动化。
问题陈述
我有一个网页,它带有(看起来像)一个我需要单击的按钮。在HTML中,它被列为菜单项。我无法成功单击页面上的其他按钮,但是这些按钮具有
我试图通过按ID选择点击方法来使用click方法,但出现“对象变量或未设置块变量”错误。
Sub WD_auto()
Dim IE As New SHDocVw.InternetExplorer
Dim HTMLDoc As MSHTML.HTMLDocument
Dim HTMLSel As MSHTML.IHTMLElement
IE.Visible = True
IE.navigate "https://wd3.myworkday.com/redacted/d/home.htmld"
Do While IE.Busy = True Or IE.readyState <> 4: DoEvents: Loop
Set HTMLDoc = IE.document
Set HTMLSel = HTMLDoc.getElementById("88831e18a0894109a83c10bc9a9be6c7")
HTMLSel.Click
End Sub
我认为我需要与之交互的HTML块如下所示。
<div class="GNMRENADFGC GNMRENADBHC GNMRENADHHC" tabindex="-2"
id="88831e18a0894109a83c10bc9a9be6c7" role="menuitem"
aria-posinset="1" aria-setsize="3">
任何指针或文献,将不胜感激。
经过更多研究后,我有了a解决方案。我只是循环所有div
标签并检查每个标签的Inner Text
属性,直到找到要单击的标签为止。
它可以工作,但是如果有人有更优雅的解决方案,我将不胜感激。该循环似乎有点浪费,我宁愿直接引用它,然后单击该元素。
Set ElementsA = IE.document.getElementsByTagName("div")
For Each ElementA In ElementsA
On Error Resume Next
If ElementA.innerText = "User Name and Password login" Then
ElementA.Click
Exit For
End If
Next ElementA