smooth 发表于 2022-1-4 20:28:08

[已解决]请教如何获取网页对象?

本帖最后由 smooth 于 2022-1-10 12:05 编辑

请教各位大佬,如何获取网页对象?我反复看了有关于IE的相关函数,也在论坛和百度里查询了,获取网页对象,都是通过类似_IECreate来创建一个网页,然后获取对象$oIE的。如果一个网页已经打开,那怎么获取网页的对象呢?先通过获取窗口的句柄,然后再获取网页对象么?如果是这样的话,那有的地方,两个网页(登录前,和登录后,窗口标题都一样的),窗口标题是一样的,那怎么区别呢?谢谢!

afan 发表于 2022-1-5 16:09:16

标题一样,内容不一样,可以通过获取内容匹配关键字来检验是否为需要的对象

smooth 发表于 2022-1-5 22:14:52

afan 发表于 2022-1-5 16:09
标题一样,内容不一样,可以通过获取内容匹配关键字来检验是否为需要的对象

A大,不是要先获取到网页的对象$oIE,才能用函数对该网页进行操作么?

afan 发表于 2022-1-6 11:07:33

#include <IE.au3>
_IEAttach($sString [, $sMode = "title" [, $iInstance = 1]])

smooth 发表于 2022-1-6 22:28:52

afan 发表于 2022-1-6 11:07
#include
_IEAttach($sString [, $sMode = "title" [, $iInstance = 1]])

A大,是这样用么?返回值是0.

#include <IE.au3>
Local $aIE
$aIE = 0
Local $iHanle = WinGetHandle("请教如何获取网页对象?-『 提问交流 』-AUTOIT CN - Powered by Autoit中文论坛 - Internet Explorer")
Local $i = 1
While 1
$oIE = _IEAttach($iHanle, "Title", $i)
If @error = $_IEStatus_NoMatch Then ExitLoop
ReDim $aIE[$i + 1]
$aIE[$i] = $oIE
$aIE = $i
$i += 1
WEnd
MsgBox(4096, "Browsers Found", "Number of browser instances in the array: " & $aIE)


afan 发表于 2022-1-6 22:46:07

smooth 发表于 2022-1-6 22:28
A大,是这样用么?返回值是0.

不要用句柄,直接用标题。
#include <IE.au3>
Local $aIE = , $i = 1
While 1
        $oIE = _IEAttach("请教如何获取网页对象?-『 提问交流 』-AUTOIT CN - Powered by Autoit中文论坛 - Internet Explorer", "Title", $i)
        If @error = $_IEStatus_NoMatch Then ExitLoop
        ReDim $aIE[$i + 1]
        $aIE[$i] = $oIE
        $aIE = $i
        $i += 1
WEnd
MsgBox(4096, "Browsers Found", "Number of browser instances in the array: " & $aIE)

smooth 发表于 2022-1-7 21:13:42

afan 发表于 2022-1-6 22:46
不要用句柄,直接用标题。

A大,这个返回值,感觉不正常吧?

afan 发表于 2022-1-7 21:22:43

不正常。确定标题字符串正确

smooth 发表于 2022-1-7 21:27:53

afan 发表于 2022-1-7 21:22
不正常。确定标题字符串正确

标题我是用窗口信息工具获取的,然后右键,全选,复制。应该错不了的吧。

afan 发表于 2022-1-7 21:44:39

smooth 发表于 2022-1-7 21:27
标题我是用窗口信息工具获取的,然后右键,全选,复制。应该错不了的吧。

标题弄短,至少不要后面的 “ - Internet Explorer”

smooth 发表于 2022-1-8 13:34:49

本帖最后由 smooth 于 2022-1-8 13:57 编辑

afan 发表于 2022-1-7 21:44
标题弄短,至少不要后面的 “ - Internet Explorer”
A大,我把标题后面的 “ - Internet Explorer”去掉了,返回1,请问一下,这1代表什么意思呢,帮助比较简单,实在是没看懂。另外,怎么得知需要缩减标题的长度呢?

afan 发表于 2022-1-8 13:54:31

smooth 发表于 2022-1-8 13:34
我把标题后面的 “ - Internet Explorer”去掉了,还是返回0.

你这是在哪个源码改的。。。不要用句柄,用标题字符串

smooth 发表于 2022-1-8 13:58:59

本帖最后由 smooth 于 2022-1-8 14:00 编辑

afan 发表于 2022-1-8 13:54
你这是在哪个源码改的。。。不要用句柄,用标题字符串
是的,我后面才发现,可以返回1,但不知道是什么意思,也不知道什么情况下需要缩减标题长度,如何缩减。我的帮助是英文的,看不懂。

afan 发表于 2022-1-8 14:05:38

smooth 发表于 2022-1-8 13:58
是的,我后面才发现,可以返回1,但不知道是什么意思,也不知道什么情况下需要缩减标题长度,如何缩减。 ...

返回1就是说匹配到了1个,返回2就是匹配到2个。对象就在数组 $aIE 中,$aIE是总数,第一个对象就是 $aIE
标题附加了浏览器标志字符“ - Internet Explorer”,那个是不属于标签的,去除即可。

smooth 发表于 2022-1-8 15:02:25

afan 发表于 2022-1-8 14:05
返回1就是说匹配到了1个,返回2就是匹配到2个。对象就在数组 $aIE 中,$aIE是总数,第一个对象就是 $a ...

不好意思,我百度和论坛都搜不到,IE对象是什么呢?怎么我用MSGBOX、_Arraydisplay、consolewrite、Tooltip,都无法显示出来呢?
页: [1] 2
查看完整版本: [已解决]请教如何获取网页对象?