yzpw 发表于 2012-9-24 16:34:26

又碰到IE点击问题

设计思路是点击网页中的图形按钮,尝试过 _IEImgClick_IEAction 等直接的函数都不行。

看页面的源代码是:

……
function redir(sFromBegin, s){
        if (typeof(setContinueStudy) == "function")
        {
                setContinueStudy(s);
        }
   
                location.href = "XueXi.htm?"+sFromBegin+"video";
}

……
      <td><div align="center"><a href="#" onClick="redir(1,1)" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1011','','images/goon-red.gif',1)"><img src="images/goon-gray.gif" name="Image1011" border="0" id="Image1011" /></a></div></td>
          <td><div align="center"></div></td>
          <td><div align="center"><a href="#" onClick="redir(1)" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1001','','images/enter-red.gif',1)"><img src="images/enter-gray.gif" name="Image1001" border="0" id="Image1001" /></a></div></td>
……

加红的部分为要点击的两个图形按钮。

当然,我先认真搜索了论坛里的帖子,貌似没有碰到类似疑问。还是厚颜请大大们指教一二。

zch11230 发表于 2012-9-24 16:46:32

用网页快捕试试?

liongodmien 发表于 2012-9-25 10:03:12

方法N多,给个IE对象操作方法:
$ieObj = _IEGetObjById($oIE, "Image1011")
_IEAction($ieObj, "Click")

还有更方便的JavaScript脚本操作方法,慢慢学吧...

liongodmien 发表于 2012-9-25 10:07:27

_IEImgClick默认是src匹配方式,而且还是全地址匹配,所以按上面的源码会出现难以匹配的情况,因此改用NAME方式就可以匹配了
_IEimgClick($oIE, "Image1011", "name")

fanxiang_1984 发表于 2012-9-25 22:47:02

没 看明白。。。。新手飘过,希望后面能看懂

yzpw 发表于 2012-9-26 09:52:47

2楼的两种方法之前都试过了,编译器返回如下错误。
--> IE.au3 V2.4-0 Warning from function _IEGetObjById, $_IEStatus_NoMatch (Image1011)
--> IE.au3 V2.4-0 Error from function _IEAction, $_IEStatus_InvalidDataType

--> IE.au3 V2.4-0 Warning from function _IEImgClick, $_IEStatus_NoMatch
全地址、文件名什么的都试过了,一直都是NoMatch。现在暂时用模拟tab按键方式将焦点移动到所需按钮上,但这样做的话就没有通用性了,换台电脑或换个浏览器就没办法正常运行。

yzpw 发表于 2012-9-26 09:57:19

If GUICtrlRead($ls1)<>1 Then            ;设置1为带有音视频选项的课程。(测试)
      Local $oIE = _IECreate("http://www.xxx.cn/student/study.jsp?id=" & GUICtrlRead($ls1))
          Sleep(6000)

          $n=12                         ;设置tab按下的次数,跳转到开始按钮上,不同浏览器、不同系统不一样。
             Send("+{TAB " & $n & "}")       ;用tab跳转到开始按钮上
             Send("{ENTER}")               ;进入听课
                ;_IEimgClick($oIE, "Image1011", "name")

          $i=0
          While $i<3                      ;45分钟左右课程模式
            WinWait("来自网页的消息")
            ControlClick("来自网页的消息", "", 1)
            $i=$i+1
      WEnd
          Sleep(1000)
      WinClose("http://www.xxx.cn/student/study.jsp")
          EndIf我目前的代码

liongodmien 发表于 2012-9-26 09:58:34

2楼的两种方法之前都试过了,编译器返回如下错误。
--> IE.au3 V2.4-0 Warning from function _IEGetObjBy ...
yzpw 发表于 2012-9-26 09:52 http://www.autoitx.com/images/common/back.gif


    你的网页源码是通过AU3获得的?要搞网页操作,不要简单右键就作为源码。右键得到的源码很多时候只一部分。

love5173 发表于 2012-9-26 10:00:00

回复 6# yzpw
你贴的源码太少,太具体的建议给不了。
按钮点击后,网页做了什么你应该知道的
_IENavigate($oIe,'javascript:GameStart();',0)
其实脚本是可以直接去执行的,不必非得去实现点击动作
就是说你可以跳过点击动作

ppzpph 发表于 2012-10-17 10:23:08

回复 9# love5173
这个有点深奥,能具体的讲一下吗?或者哪里有这方面的文章之类的。脚本的直接提交要比模拟点击通用性更好。

love5173 发表于 2012-10-17 11:32:19

回复 10# ppzpph
我做过一个韩国游戏网页自动登录的脚本,最后要点击gamestrat,那是个图片。尝试了很多方法都没点击成功,最后只好直接运行按钮激活的那个脚本,实现的登录游戏
页: [1]
查看完整版本: 又碰到IE点击问题