找回密码
 加入
搜索
查看: 6080|回复: 8

[AU3基础] 网页点击问题

  [复制链接]
发表于 2011-12-11 21:00:31 | 显示全部楼层 |阅读模式
这个代码是:打开一个网页,并且收集网页的超链接,找到自己要的超链接并打开它;
#include <IE.au3>
$oIE=_IECreate("http://www.baidu.com/",0,1,1,0)
$sMyString = "图片"
$oLinks = _IELinkGetCollection($oIE) ;返回文档中所有链接的集合
For $oLink in $oLinks  ;从第一个链接到最后一个链接循环查找
    $sLinkText = _IEPropertyGet($oLink, "innerText") ;
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")  ;找到匹配的就点击的它
        ExitLoop
    EndIf
Next

但是在电信网页那里就不行了
#include <IE.au3>
$oIE=_IECreate("http://gd.ct10000.com/zs/",0,1,1,0)
$sMyString = "短信营业厅"
$oLinks = _IELinkGetCollection($oIE)
For $oLink in $oLinks  
    $sLinkText = _IEPropertyGet($oLink, "innerText")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")  
        ExitLoop
    EndIf
Next
那位懂得高手指导一下!
发表于 2011-12-11 22:58:50 | 显示全部楼层
回复 1# blue_dvd


    我试过的你的代码没问题, 点击的时候Ie 可能会阻止,先添加信用或者关闭弹出窗口阻止程序
发表于 2011-12-11 23:08:20 | 显示全部楼层
本帖最后由 cxlater 于 2011-12-11 23:11 编辑

是2楼所说的问题  这种连接又没有js代码  为什么不直接_IENavigate呢
或者修改A标签的Target属性值 让其在自身窗口打开连接

#include <IE.au3>
$oIE = _IECreate("http://gd.ct10000.com/zs/", 0, 1, 1, 0)
$sMyString = "短信营业厅"
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
        $sLinkText = _IEPropertyGet($oLink, "innerText")
        If StringInStr($sLinkText, $sMyString) Then
                $oLink.target = ""
                _IEAction($oLink, "click")
                ExitLoop
        EndIf
Next

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2011-12-11 23:14:29 | 显示全部楼层
回复 3# cxlater


      吼吼,这个是写作弊脚本的精华所在,提醒下_IEPropertyGet($oLink, "innerText") 效率不如 object.innertext效率高哦,亲测。

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

 楼主| 发表于 2011-12-11 23:31:12 | 显示全部楼层
多谢3楼,终于搞定了,但是为什么加多一行代码“$oLink.target = ""”,就搞定了呢?什么原理?
发表于 2011-12-12 11:22:31 | 显示全部楼层
mark 学习一下,,最近恰好用到这个。。
 楼主| 发表于 2011-12-13 00:28:39 | 显示全部楼层
#include <IE.au3>
$oIE = _IECreate("http://gd.ct10000.com/zs/", 0, 1, 1, 0)
$oInputs = _IETagNameGetCollection ($oIE, "input")

;找到 名子控件 輸入名子
For $oInput In $oInputs
        if $oInput.ID = "短信营业厅" then
       _IEAction ($oInput, "click")
EndIf

Next
这个运行不成功,原因在哪?
发表于 2014-2-17 10:06:23 | 显示全部楼层
感谢,学习了,学习了
发表于 2014-4-22 00:33:19 | 显示全部楼层
学习了,多谢分享。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-19 12:58 , Processed in 0.080684 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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