【问题标题】:How to get innertext from IE tab in Autoit如何从 Autoit 中的 IE 选项卡获取内部文本
【发布时间】:2017-01-27 16:16:39
【问题描述】:

这是我的问题的上下文:我有一个 IE 窗口,它打开了几个选项卡(实际上,很多,大约 50 个)。我正在浏览选项卡(使用 ControlSend“^i”)并希望获取当前显示选项卡的内部文本。然而,来自 _IEPropertyGet($global_ie, "innertext") 命令的内容是每次第一个选项卡(创建 IE 的选项卡)的内部文本。

我的问题是:如何获取当前标签的内部文本?

我有一些限制:

  • 我无法进行图形操作,因为 IE 窗口将 隐藏
  • 我无法刷新/重新加载选项卡/页面(有 50 个选项卡,最终会出现 请求过多,被反 DDOS bot 捕获 网站)
  • 我无法在不同的 IE 中打开标签(标签太多,不确定我的电脑 一次可以处理 50 个 IE)

附加信息:

  • 使用 Navigate2 函数创建选项卡(使用参数 "0x1000")

  • 我使用函数 ControlSend( ... , "^$i)

我对使用 Autoit(和任何自动化工具)还是很陌生,所以我可能不了解一些基本知识。

非常感谢大家!

[来自 Autoit 论坛的 X-POST]

【问题讨论】:

    标签: html internet-explorer tabs autoit


    【解决方案1】:

    我在 Autoit 论坛上的帖子已得到答复。这就是解决问题的方法。要获得活动标签,我需要使用以下函数:

    Func _IEGetActiveTab()
    Local $hwnd, $i, $title, $oIE
    
    ; get first IE instance
    $oIE = _IEAttach ("", "instance", 1)
    
    If @error = $_IESTATUS_Success Then
        ; get window title
        $hwnd = _IEPropertyGet($oIE, "hwnd")
        $title = WinGetTitle($hwnd)
    
        ;strip off trailing browser text
        $i = StringInStr($title, ' - ', 0, -1)
        If $i > 0 Then
            $title = StringLeft($title, $i - 1)
        EndIf
    
        $oIE = _IEAttach($title, "windowtitle")
    EndIf
    
    Return $oIE
    EndFunc
    

    添加一些延迟后,使用_IEPropertyGet($active_tab, "innertext"),我能够获取页面的文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多