【问题标题】:How do I click a tab inside a pop using vba in Internet Explorer如何在 Internet Explorer 中使用 vba 单击弹出窗口中的选项卡
【发布时间】:2016-10-19 08:01:02
【问题描述】:

我对 VBA 比较陌生,我正在努力实现这一目标,

  1. 导航到网址
  2. 单击一个按钮会打开一个包含 3 个选项卡的弹出窗口
  3. 点击第三个标签
  4. 报废一些信息

我已经成功使用 1 和 2。但是我无法使用 VBA 单击弹出窗口中的任何选项卡。

这是弹出的 Html sn-p。

'<ul class="clearfix" id="historyTabs">
            <li class="ajaxCall jsonpCall selected" id="Tab1"><a href="javascript:;">Some Details</a></li>

            <li class="ajaxCall" id="Tab2"><a class="Class1" href="javascript:;">More Details</a></li>

            <li id="Tab3"><a href="javascript:;">Even more Details</a><span id="Tab31" style="display: none;"></span></li>
        </ul>

我试过了

 y = 1
 Set ec = HTML.getElementsByTagName("li")
 For Each e In ec
    idvalue = e.getAttribute("id")
    If idvalue = "Tab3" Then
        idinnertext = e.innerText
        Sheets("Sheet2").Cells(y, 1).Value = idinnertext
        e.click
    Else 
        Sheets("Sheet2").Cells(y, 2).Value = "Not Tab3"
        y = y + 1
   End if
 Next e

代码在我的 Excel 工作表中写入“更多详细信息”,但没有单击选项卡。

请求一些帮助。

谢谢, 阿基莱什

【问题讨论】:

  • 你也试过.FireEvent("Click"),为什么不GetElementByID("Tab3")?
  • @Nathan_Sav :尝试了两种方法 Nathan。 FireEvent("Click") 我收到“无效参数”错误,GetElemenetByID 没有做任何事情。
  • 弹出窗口将有另一个浏览器实例,因此您需要首先通过搜索标题找到该新窗口,然后在该浏览器实例中搜索“Tab3”。您当前的代码似乎正在浏览器的父实例中搜索 Tab3。
  • @J.B.但是当我在 Excel 中弹出窗口后编写 innerText 时,它能够获取第一个选项卡中的值(默认为“单击”)
  • 嗨,对不起,我错过了弹出位。看看正确使用 Microsoft HTML 控件,使用正确的对象,您将能够破译这样的事情。找到打开的网络浏览器,这是一个很好的开始msdn.microsoft.com/en-us/library/ms970672.aspx

标签: excel vba


【解决方案1】:

本身不作为答案发布,只是在这里更好地格式化。像这样的东西,你需要围绕它进行构建。它使用 Microsoft Internet 控件和 HTML 对象库。

希望对你有帮助

Sub n()

Dim arrExplorerWindows As SHDocVw.ShellWindows
Dim objIE As InternetExplorer
Dim intExplorerWindowLoop As Integer
Dim doc As MSHTML.HTMLDocument
Dim eleTab As MSHTML.IHTMLElement

Set arrExplorerWindows = New SHDocVw.ShellWindows

For intExplorerWindowLoop = 0 To arrExplorerWindows.Count - 1

    If arrExplorerWindows(intExplorerWindowLoop).Name = "Internet Explorer" Then
        If arrExplorerWindows(intExplorerWindowLoop).LocationURL = _
            "http://www.investinganswers.com/" Then
            Set objIE = arrExplorerWindows(intExplorerWindowLoop)
            Set doc = objIE.Document
            Set eleTab = doc.getElementById("Tab3")
            eleTab.Click
        End If
    End If

Next intExplorerWindowLoop

End Sub

【讨论】:

    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 2013-01-04
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多