找回密码
 加入
搜索
查看: 1806|回复: 15

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

[复制链接]
发表于 2022-1-4 20:28:08 | 显示全部楼层 |阅读模式
本帖最后由 smooth 于 2022-1-10 12:05 编辑

请教各位大佬,如何获取网页对象?我反复看了有关于IE的相关函数,也在论坛和百度里查询了,获取网页对象,都是通过类似_IECreate来创建一个网页,然后获取对象$oIE的。如果一个网页已经打开,那怎么获取网页的对象呢?先通过获取窗口的句柄,然后再获取网页对象么?如果是这样的话,那有的地方,两个网页(登录前,和登录后,窗口标题都一样的),窗口标题是一样的,那怎么区别呢?谢谢!
发表于 2022-1-5 16:09:16 | 显示全部楼层
标题一样,内容不一样,可以通过获取内容匹配关键字来检验是否为需要的对象
 楼主| 发表于 2022-1-5 22:14:52 | 显示全部楼层
afan 发表于 2022-1-5 16:09
标题一样,内容不一样,可以通过获取内容匹配关键字来检验是否为需要的对象

A大,不是要先获取到网页的对象$oIE,才能用函数对该网页进行操作么?
发表于 2022-1-6 11:07:33 | 显示全部楼层
#include <IE.au3>
_IEAttach($sString [, $sMode = "title" [, $iInstance = 1]])
 楼主| 发表于 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[1]
$aIE[0] = 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[0] = $i
 $i += 1
WEnd
MsgBox(4096, "Browsers Found", "Number of browser instances in the array: " & $aIE[0])


发表于 2022-1-6 22:46:07 | 显示全部楼层
smooth 发表于 2022-1-6 22:28
A大,是这样用么?返回值是0.

不要用句柄,直接用标题。
#include <IE.au3>
Local $aIE[1] = [0], $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[0] = $i
        $i += 1
WEnd
MsgBox(4096, "Browsers Found", "Number of browser instances in the array: " & $aIE[0])
 楼主| 发表于 2022-1-7 21:13:42 | 显示全部楼层
afan 发表于 2022-1-6 22:46
不要用句柄,直接用标题。

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-1-7 21:22:43 | 显示全部楼层
不正常。确定标题字符串正确
 楼主| 发表于 2022-1-7 21:27:53 | 显示全部楼层
afan 发表于 2022-1-7 21:22
不正常。确定标题字符串正确

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

标题弄短,至少不要后面的 “ - Internet Explorer”
 楼主| 发表于 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代表什么意思呢,帮助比较简单,实在是没看懂。另外,怎么得知需要缩减标题的长度呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-1-8 13:54:31 | 显示全部楼层
smooth 发表于 2022-1-8 13:34
我把标题后面的 “ - Internet Explorer”去掉了,还是返回0.

你这是在哪个源码改的。。。不要用句柄,用标题字符串
 楼主| 发表于 2022-1-8 13:58:59 | 显示全部楼层
本帖最后由 smooth 于 2022-1-8 14:00 编辑
afan 发表于 2022-1-8 13:54
你这是在哪个源码改的。。。不要用句柄,用标题字符串

是的,我后面才发现,可以返回1,但不知道是什么意思,也不知道什么情况下需要缩减标题长度,如何缩减。我的帮助是英文的,看不懂。
发表于 2022-1-8 14:05:38 | 显示全部楼层
smooth 发表于 2022-1-8 13:58
是的,我后面才发现,可以返回1,但不知道是什么意思,也不知道什么情况下需要缩减标题长度,如何缩减。 ...

返回1就是说匹配到了1个,返回2就是匹配到2个。对象就在数组 $aIE 中,$aIE[0]是总数,第一个对象就是 $aIE[1]
标题附加了浏览器标志字符“ - Internet Explorer”,那个是不属于标签的,去除即可。
 楼主| 发表于 2022-1-8 15:02:25 | 显示全部楼层
afan 发表于 2022-1-8 14:05
返回1就是说匹配到了1个,返回2就是匹配到2个。对象就在数组 $aIE 中,$aIE[0]是总数,第一个对象就是 $a ...

不好意思,我百度和论坛都搜不到,IE对象是什么呢?怎么我用MSGBOX、_Arraydisplay、consolewrite、Tooltip,都无法显示出来呢?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 13:25 , Processed in 0.075911 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表