【问题标题】:how to click a button on webpage having class name using vba excel如何使用vba excel单击具有类名的网页上的按钮
【发布时间】:2019-05-09 15:11:00
【问题描述】:

我是 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,因为每次启动应用程序时它都会不断变化。 其他按钮的类和类型也相同。

请原谅我的任何技术错误 任何帮助都将是一个巨大的帮助。

【问题讨论】:

    标签: vba excel internet-explorer web-scraping


    【解决方案1】:

    有一个ID。它是完全改变还是部分保持不变?如果是,您可以使用 CSS 选择器对保持不变的位进行部分匹配。

    除此之外你可以使用:

    objIE.document.querySelector("button[class*= x-btn-text]").Click
    

    这使用 CSS 选择器来定位 button[class*= x-btn-text] 的元素。这将是第一个带有button 标签的元素,其属性为class,其值包含x-btn-text

    【讨论】:

    • 如果它旁边有另一个按钮与相同的类?我应该输入 querySelector("button[class*= x-btn-text]")(1) ?
    • 取决于选择器是否仍然有效。您还需要 querySelectorAll(selector).item(1)
    【解决方案2】:

    “按钮”不是 HTML 标签。使用“标签”。让我在这里举个例子。将“strTagName”替换为包含您要单击的内容的 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
    

    【讨论】:

      猜你喜欢
      • 2017-06-07
      • 2021-12-16
      • 1970-01-01
      • 2018-12-22
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      相关资源
      最近更新 更多