找回密码
 加入
搜索
查看: 3809|回复: 5

[AU3基础] _IEImgGetCollection无法循环出网页图片链接

  [复制链接]
发表于 2013-5-19 22:12:12 | 显示全部楼层 |阅读模式
#include <IE.au3>

$oIE = _IECreate("202.107.222.146")
Local $oImgs = _IEImgGetCollection($oIE)
Local $iNumImg = @extended
MsgBox(4096, "Img Info", "There are " & $iNumImg & " images on the page")
For $oImg In $oImgs
        MsgBox(4096, "Img Info", "src=" & $oImg.src)
        _IEImgClick($oIE, $oImg.src)
Next
在使用上述代码对用友客户端登录网页的图片链接进行循环时,只能循环到网页最上面和最下面两张没有链接的图片,而中间的UFIDA NC(对应的图片是ufida_nc_over.png),IUFO(对应的图片是ufida_iufo_over.png)这两张图片却无法循环出其图片链接,请教这是什么现象?谢谢!
发表于 2013-5-20 09:12:03 | 显示全部楼层
看202.107.222.146的网页源码,你说的二处没有用IMG标签指定图片位置名称等有关信息,而是用了函数,在函数里再指定的图片的信息,而_IEImgGetCollection()的帮助如此说:返回一个文档内IMG标签的对象变量集合,所以用_IEImgGetCollection()达不到你要的效果。
 楼主| 发表于 2013-5-20 09:19:52 | 显示全部楼层
回复 2# shqf
网页源文件我也查看了,但是看得不是很懂,没学过C语言。有什么办法吗?
发表于 2013-5-20 10:40:47 | 显示全部楼层
无需懂C语言,略懂HTML,知道标签的作用就行。
Autoit中模拟点击链接的函数、方法很多,可根据链接的不同类型,也可根据链接索引,或获取全部链接的对象集合,或根据ID等先获取单个链接对象等等。根据网页的不同情况需采用适合的不同的方法或函数。
以下是获取全部链接对象的集合的:
#include <IE.au3>

$oIE = _IECreate("202.107.222.146")
Local $oLinks = _IELinkGetCollection($oIE)
Local $iNumlink = @extended
MsgBox(4096, "Link Info", "There are " & $iNumLink & " Links on the page")
For $oLink In $oLinks
        MsgBox(4096, "Link Info", "href=" &  $oLink.href)
        _IEImgClick($oIE, $oLink.href)
Next
 楼主| 发表于 2013-5-20 11:09:46 | 显示全部楼层
回复 4# shqf

这个我测试过了,达不到效果,找到的两个链接,第一个有效,第二个无效。
我逐个函数测试,发现以下函数可以满足我的要求:
#include <IE.au3>

Local $oIE = _IECreate("202.107.222.146")
_IELinkClickByIndex($oIE, 1)
0表示打开第一个链接,1表示打开第二个链接。
发表于 2013-5-20 13:03:09 | 显示全部楼层
第9句忘记改了,为如下就行了:_IEAction($oLink, "click")
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 06:09 , Processed in 0.076694 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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