Excel浏览器中的Excel VBA单击按钮,具有唯一的元素名称

时间:2018-05-15 19:12:49

标签: excel vba internet-explorer

我正在尝试根据分配ID为665创建一个单击此按钮的宏。

<div class="atlas--ui-grid-cell atlasGrid-cell #modules--execGrid-grid-col-action">
<button class="button small btnViewAction atlas--ui-button" type="button" 
data-tracking-value="Action" data-tracking-label="View Action" 
data-tracking-category="Reconciliations" data-attribs-childassignmentid="665" 
data-attribs-reconciliationid="147794" data-attribs-assignmenttype="A" 
data-attribs-assignmentid="665" value="undefined" data-columnname="action">Edit</button></div>

以下是我的尝试:

Sub ClickBtn()
Const M_URL As String = "example.com"

Dim OB_IE As SHDocVw.InternetExplorer
Dim btn As Object

Set OB_IE = New InternetExplorerMedium
OB_IE.Visible = True
OB_IE.Navigate M_URL

Do Until OB_IE.ReadyState = READYSTATE_COMPLETE
Loop

For Each btn In OB_IE.Document.getElementsByClassName("button")
        If btn.innerText = "665" Then
            btn.Click
            Exit For
        End If
    Next btn

我能够找到类名,但是我无法识别它的唯一标识符。如果我改变如果btn.innerText =&#34; 665&#34;我可以点击这个。 btn.innerText =&#34;编辑&#34; 。但是,有多个按钮具有&#34;编辑&#34;作为文本,这就是我试图引用665的原因。我试图弄清楚是否有一种方法可以引用某些元素,例如data-attribs-childassignmentid =&#34; 665&#34;。感谢。

2 个答案:

答案 0 :(得分:1)

尝试getAttribute并进行比较。

For Each btn In OB_IE.Document.getElementsByClassName("button")
    If btn.getAttribute("data-attribs-assignmentid") = "665" Then
        btn.Click
        Exit For
    End If
Next btn

你说你按类正确地收集了这个集合但不应该是OB_IE.Document.getElementsBy 标记名称(&#34;按钮&#34;)?课程比“按钮”更为复杂。

答案 1 :(得分:1)

尝试:

  If btn.GetAttribute("data-attribs-childassignmentid") = 665 Then