我是VBA excel的新秀。 有一个网页应用程序在其中 我需要点击一个按钮,其来源是
<em class="x-btn-arow" unselectable="on">
<button class= x-btn-text" id="ext-gen7576" style="" type="button">Actions</button>
Sub xx()
Dim IE As Object
Dim doc As HTMLDocument
Dim l As IHTMLElement
Dim lo As IHTMLElementCollection
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "http://theapplicationlink"
Do
DoEvents
Loop Until IE.ReadyState = 4
Set doc = IE.Document
Set lo = doc.getElementsByTagName("button")
For Each l In lo
If l.getAttribute("class") = "x-btn-text" Then
l.click
End If
Next
End Sub
它不会抛出任何错误,但它不会点击按钮。
我无法使用ID,因为每次启动应用程序时都会不断更改。 其他按钮的类和类型也相同。
原谅我任何技术错误 任何帮助都将是一个巨大的帮助。
答案 0 :(得分:1)
有一个ID。它是完全改变还是部分保持不变?如果是这样的话,您可以使用CSS选择器在保持相同的位上进行部分匹配。
除此之外,您可以使用:
objIE.document.querySelector("button[class*= x-btn-text]").Click
这使用CSS选择器定位button[class*= x-btn-text]
的元素。这将是带有button
标签的第一个元素,其属性为class
,其值包含x-btn-text
。
答案 1 :(得分:0)
&#34;按钮&#34;不是HTML标记。使用&#34;标记&#34;。让我举个例子。替换&#34; strTagName&#34;使用HTML标记,包含您想要点击的内容。
Dim objTag As Object
For Each objTag In objIE.document.getElementsByTagName(strTagName)
If InStr(objTag.outerHTML, "x-btn-text") > 0 Then
objTag.Click
Exit For
End If
Next