【问题标题】:how to click HTML innertext with VBA如何使用 VBA 单击 HTML 内文
【发布时间】:2019-11-27 10:02:03
【问题描述】:

如何通过VBA点击“li”的内文? rhef 是动态的。 我有 3 页,当加载表单时,默认情况下页面为 1,我必须单击第 2 页。 我已经粘贴了下面的代码,当我一步一步看到时,行正在循环,并传递“difHTMLA.Click”行,但它既没有抛出错误也没有重新加载页面。请帮忙

Set difHTMLAs = doc.getElementsByTagName("li")
    For Each difHTMLA In difHTMLAs
        If difHTMLA.getAttribute("classname") = "swfPagingOtherPageArea swf-left" Then
            If CStr(Trim(difHTMLA.innerText)) = "2" Then
            difHTMLA.Click
            End If
        End If
      Next difHTMLA
    Exit For

<ul class="swfPaging">    
        <li> 
          &lt;
        </li>  
            <li class="swfPagingSelectedPageArea swf-left">
              1
            </li>
            <li class="swfPagingOtherPageArea swf-left">       
              <a href="/wps/myportal/dynamic URL/">
                2
              </a>
            </li>    
            <li class="swfPagingOtherPageArea swf-left">
              <a href="/wps/myportal/dynamic URL/">
                3
              </a>
            </li>

【问题讨论】:

  • 又是一个没有任何网站链接的问题。您正在询问与网络抓取相关的问题,但没有可玩的网站。这主要发生在 vba 问题中。

标签: html vba web-scraping automation


【解决方案1】:

您可以使用 css :nth-of-type 伪选择器来定位父 li 的类。 Css 选择器通过 querySelector 应用以返回第一个匹配项,或者通过 querySelectorAll 应用以返回所有匹配项。然后,您需要 li 中的子 a 标记和类 swfPagingOtherPageArea。前面下面的. 是一个css 类选择器。它根据类属性名称选择元素。这是基于提供的 html。

ie.document.querySelector(".swfPagingOtherPageArea:nth-of-type(3) a")

第 2 页

ie.document.querySelector(".swfPagingOtherPageArea:nth-of-type(4) a")

第 3 页

那是从起始页开始的。

如果没有看到页面,就更难就循环页面提出建议,因为元素可能会发生变化。例如,您可能会发现在第 2 页时,您无法使用 .swfPagingOtherPageArea:nth-of-type(4) a 获取第 3 页,因为第 3 页现在是 .swfPagingOtherPageArea:nth-of-type(3) a 即活动页面的类名称发生了变化,因此使用的正确索引也发生了变化。


如果仍然没有触发,那么您可能需要在元素上触发 FireEvent "onclick"

ie.document.querySelector(".swfPagingOtherPageArea:nth-of-type(3) a").FireEvent "onclick"

如果仍然失败,您可以尝试向节点添加事件,如图所示 here

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多