通过VBA选择HTML菜单项

问题描述 投票:0回答:1

我对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">

任何指针或文献,将不胜感激。

html browser-automation
1个回答
0
投票

经过更多研究后,我有了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
© www.soinside.com 2019 - 2024. All rights reserved.