【问题标题】: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)
附加信息:
我对使用 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"),我能够获取页面的文本。