【问题标题】:IE11 Automation via Excel VBA - Forms通过 Excel VBA 实现 IE11 自动化 - 表单
【发布时间】:2018-11-06 13:50:02
【问题描述】:

这是我原帖 here 的第 2 部分。所以现在一旦登录,我必须点击两次才能显示我最终试图抓取的信息。我似乎无法找出正确的方法来深入了解点击工作。这一切都埋藏在一个形式中。第一张图片显示form structure。第二张图片显示all of the code,我试图在其中访问主管跨度下方的当前情况链接。我必须使用以下方法(正如您从我之前的帖子中看到的那样)让 IE 保持连接,所以不确定这是否有任何影响:

Dim objIE As Object

Set objIE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")

在尝试自动单击“当前情况”选项卡时,我尝试了以下操作,但没有成功(有和没有 0)

objIE.document.getElementById("1617")(0).Click

除了得到答案之外,我更感兴趣的是接受教育。有没有一种方法可以深入了解表单中的信息?我的印象是网页的所有元素都在加载过程中被拉入。那么,这难道不是我对网页自动化的最基本理解中的一个元素吗?

请注意,我必须单击主管才能显示其下方的树。提前感谢您的帮助!

更新: 好吧,我认为这是一个重大的疏忽。根据我之前的帖子,登录功能完美。但是一旦登录,就会创建一个新窗口。所以我相信这是挑战,对吧?它找不到任何这些 ID 或元素,因为它正在查看原始 IE 对象,而不是新窗口。那么如何让它激活/访问新窗口呢?抱歉,我之前错过了!

【问题讨论】:

  • objIE.document.getElementById("1617").Click 该方法只返回单个元素,而不是集合,因此不需要(0)
  • 请在代码标签之间包含代码,而不是图像。

标签: html vba excel internet-explorer-11


【解决方案1】:

方法 getElementById 返回单个元素,而不是集合,这与 getElementsByClassName 不同(查看方法名称中的“元素”与“元素”)。因此不应使用(0) 或任何其他集合索引。

正确的语法是:

objIE.document.getElementById("1617").Click

对于弹出窗口试试这个:

Dim wURL As String
Dim myWindow As Object

For Each myWindow In CreateObject("Shell.Application").Windows

    wURL = myWindow.LocationURL

    If InStr(wURL, "constant_part_of_popup_window_link") <> 0 Then
         'do stuff
         myWindow.Quit
         Exit For
    End if

Next myWindow

用于访问 iFrame 中的元素:

myWindow.document.getElementById("frameMainMenu").contentWindow.document.getElementById("1617").Click

【讨论】:

  • 感谢 Ryszard。当我尝试这个时,我不断收到错误“运行时错误'91':对象变量或未设置块变量。
  • 表示页面上没有ID为“1617”的元素。
  • 如何点击supervisor这个词? &lt;nobr class="branch" onclick="CDHTMLTreeShowBranch('1410')"&gt; &lt;span class="classBranchSpanText"&gt;Supervisor&lt;/span&gt; 这是我要使用内文的地方吗?
  • 此 HTML 中没有 ID。试试objIE.document.getElementsByClassName("branch")(0).Click。如果在该元素之前有一些具有“分支”类的元素,则需要将 0 替换为适当的索引。
  • 请看我的更新。登录后,会创建一个新窗口,我现在要做的所有事情都在那个窗口上,而不是原来的窗口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 2013-10-17
相关资源
最近更新 更多