这是我的问题的上下文:我有一个IE窗口,它打开了几个选项卡(事实上,很多,大约50个)。我正在浏览这些选项卡(使用ControlSend"^I"),并希望获得当前显示的选项卡的内部文本。但是,_IEPropertyGet($global_ie,"内部文本")命令每次都是第一个选项卡(创建ie的选项卡)的内部文本时。
我的问题是:如何获取当前选项卡的内部文本?
我有一些限制:
- 我不能做图形化的事情,因为IE窗口将隐藏的
- 我无法刷新/重新加载选项卡/页面(有50个选项卡,最终显示请求太多,被的反DDOS机器人捕获网站)
- 我无法打开不同IE中的选项卡(选项卡太多,不确定我的电脑一次可处理50个IE)
其他信息:
-
使用Navigate2功能创建选项卡(带有参数"0x1000")
-
我使用函数ControlSend(,"^$i)
我刚开始使用Autoit(以及任何自动化工具),所以我可能不了解一些基本知识。
谢谢大家!
[Autoit论坛的X-POST]
我在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")
之后,我能够获得页面的文本。