【问题标题】:Clicking a button within an IE table单击 IE 表中的按钮
【发布时间】:2018-06-30 02:09:05
【问题描述】:

我正在尝试在 IE 内的网页上单击表格内的按钮,按钮的来源显示:

<input type="image" src="img/testimg.png" onclick="picture_return(this,'92b84574a336a090618f151b6fc821cf:5','http://testwebpage.com/in/834');" value="Test Web Button">

这是一个大表的一部分,在源中有多个&lt;td&gt;,这是在另一个表中,然后在以下类中:

<div class="section_client_dnBox">

我尝试使用以下 VBA 代码浏览课程中的一些项目:

IE.Document.getElementsByClassName("section_client_dnBox")(0).Click

但是,没有运气,因为 (0) 没有按任何东西,而且任何更大的东西,即 (1) 给了我一个错误。所以我现在的问题基本上是,有没有什么方法可以使用简单的方法单击按钮,例如在表中引用它的值(value="Test Web Button")?

【问题讨论】:

  • 只是出于好奇——互联网上 99.9% 的用户都在使用 JS,你为什么还要使用 VBA?
  • 这段代码的目的是为了 IE 自动化。我不确定这是否可以使用 JS 轻松实现,而且我对 JS 没有太多经验。
  • 针对什么特定任务?测试网页/应用程序?屏幕抓取?我认为使用 JS 会好得多,因为它适用于所有浏览器,并且几乎可以做任何你需要的事情。当您需要帮助时,将会有更多的社区支持 - 现在很少有人将 VBA 用于任何事情。
  • @mpowered 虽然我同意 JS 可能更适合这个应用程序,但我知道很多人不同意“现在很少有人使用 VBA 做任何事情”。 VBA 活得很好。许多人专业使用 VBA,因为它仍然是许多办公自动化需求的最佳选择。

标签: html excel vba internet-explorer


【解决方案1】:

根据我的经验,您需要查看标签名而不是类名。这是我在查找按钮时通常使用的代码示例。

For Each MyHTML_Element In document.getElementsByTagName("input")
     If MyHTML_Element.Type = "submit" Then
         MyHTML_Element.Click: Exit For
     End If
Next

您也许可以更改 .键入 =“图像”。我也只是在学习如何在 VBA 中使用 IE 自动化,所以我也不是它的冠军。我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    CSS 选择器:

    使用 input[value='Test Web Button'] 的 CSS 选择器要简单得多。不需要循环。

    它说获取带有input标签的元素,该标签具有属性value,其值='Test Web Button'"[]" 表示属性。

    document.querySelector 方法是您应用选择器的方式。


    CSS 查询:


    VBA:

    ie.document.querySelector("input[value='Test Web Button']").Click
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多