如何点击当前已打开页面的按钮(位置不固定,页面是框架中带iframe嵌套+浮动层)
现有一网页 已打开状态下需要点击页面中的 《返回》按钮返回 按钮为 <a href="/mes/jj.jsp">返回</a> 这样的想知道如何用au3自动点击该按钮 我用下面的方式实现老是出错,请高手帮助我一下,谢谢
1、
Send("{TAB 6}")
Send("{ENTER}")
2、
MouseMove(116,258)
MouseDown("left")
MouseUp("left")
Sleep(2000)
MouseMove(253,315)
MouseDown("left")
MouseUp("left")
MouseClick("left",88,303,2)
在各位的帮助及自己的努力下终于写出了成功解放双手的代码:
在此感谢大家
$path = "E:\材料条形码图片\根据厂家分类(新)\"
$barcode = ClipGet()
$na = ".bmp"
$chbm = StringSplit($barcode, '*', 1)
$gys = IniRead("E:\供应商编码.ini", "供应商", $chbm,"未知")
;MsgBox(0, "结果", $gys)
;MsgBox(0, "存货编码", $chbm)
;MsgBox(0, "供应商", $chbm)
;MsgBox(0, "路径", $path&$chbm&"\")
;MsgBox(0, "路径", $path&$chbm&"\"&$chbm&$na)
Filecopy( "C:\windows\system32\Label.bmp",$path&$gys&"\",8)
FileMove( $path&$gys&"\Label.bmp", $path&$gys&"\"&$chbm&$na)
WinActivate($gys)
WinActivate("飞达集团物流条码管理系统")
Send("{BROWSER_BACK}")
Send("{BROWSER_BACK}")
Send("{BROWSER_BACK}")
Sleep(7000)
WinActivate("飞达集团物流条码管理系统")
Send("{TAB 5}")
Send("{ENTER}")
;If Not WinActive("飞达集团物流条码管理系统 - Windows Internet Explorer","") Then WinActivate("飞达集团物流条码管理系统 - Windows Internet Explorer","")
;WinWaitActive("飞达集团物流条码管理系统 - Windows Internet Explorer","")
MouseMove(435,401)
MouseClick("left",435,401,1)
Send("{TAB}")
Send("{ENTER}")
Sleep(1000)
MouseMove(435,401)
MouseClick("left",435,401,1)
Send("{TAB 6}")
Send("{ENTER}")
Sleep(2000)
MouseMove(294,302)
MouseClick("left",294,302,3)
Send("{CTRLDOWN}c{CTRLUP}")
run("C:\Users\Administrator\Desktop\AU3\xxxx.exe")
[ 本帖最后由 ngzyl 于 2008-6-26 16:27 编辑 ] 给出完整网页,这样的提问谁也帮不了你.
参考帮助中的ie.au3 图片已经上传了 谢谢
回复 2# pcbar 的帖子
请版主帮忙啊!图片已经传了,看了ie.au3的帮助 无果 谁帮帮我啊!!!! #include <IE.au3>$oie=_IEAttach("飞达集团")
_IELinkClickByText($oie,"返回") 原帖由 pcbar 于 2008-6-23 17:17 发表 http://www.autoitx.com/images/common/back.gif
#include
$oie=_IEAttach("飞达集团")
_IELinkClickByText($oie,"返回")
这个不行我试过了。。。。。
>运行:(3.2.13.2):D:\autoit3\autoit3.exe "C:\Users\Administrator\Desktop\AU3\zz.au3"
--> IE.au3 V2.4-0 Warning from function _IELinkClickByText, $_IEStatus_NoMatch
+>17:33:16 AutoIT3.exe 完成::0
+>17:33:17 ACNWrapper 完成!
>退出代码: 0 时间: 5.371
[ 本帖最后由 ngzyl 于 2008-6-23 17:33 编辑 ] 看图片有可能是J2EE架构的管理系统
右边可能是浮动层
如果右边不是浮动层那应该用IE.AU3里面就可以解决 原帖由 auto 于 2008-6-23 21:27 发表 http://www.autoitx.com/images/common/back.gif
看图片有可能是J2EE架构的管理系统
右边可能是浮动层
如果右边不是浮动层那应该用IE.AU3里面就可以解决
的确系统是j2ee架构的
<frameset framespacing="0" border="0" rows="96,*,5" frameborder="0">
<frame SRC="TOP.htm" name="fraToolbar" frameborder="no" TOPMARGIN="0"LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" scrolling="no">
<frame name="main" src="Body.jsp" target = "main">
<frame name="last" scrolling="no" noresize target="main" hidden src="bottom.htm">
<noframes>
<body oncontextmenu=self.event.returnValue=false>
<p></p>
</body>
</noframes>
</frameset>
有什么办法么! 大概看了下,框架内的连接还是可以点击的
#include <IE.au3>
$oIE = _IECreate ("这个用你的地址", 1, 1, 0);
也可以用这样 $oie=_IEAttach("飞达集团")这个来匹配
$oFrames = _IEFrameGetCollection ($oIE,1)
;这个重要了,页面内第1个框架,你要根据需要改了,看网页内一共有几个框架,也就是几个frame
这个参数要用个数减1,你的应该是2,也就是$oFrames = _IEFrameGetCollection ($oIE,2)
_IELinkClickByText ($oFrames,"返回")
我自己找了个例子试了下,还是可以点的
我把我测试的例子放上来
[ 本帖最后由 rho123 于 2008-6-25 15:28 编辑 ] 原帖由 rho123 于 2008-6-25 15:19 发表 http://www.autoitx.com/images/common/back.gif
大概看了下,框架内的连接还是可以点击的
#include
$oIE = _IECreate ("这个用你的地址", 1, 1, 0);
也可以用这样 $oie=_IEAttach("飞达集团")这个来匹配
$oFrames = _IEFrameGetCollection ($oIE,1)
;这个重 ...
谢谢!我试了下 还是不行
$oIE = _IECreate ("这个用你的地址", 1, 1, 0); 这个不适合我这里使用因为是在已经打开的页面下操作 这个系统是需要登录的
我的地址栏:http://192.168.1.51:8888/mes/是这个 不会变的不管点什么链接 都在框架下地址栏不会变的
还有就是在任何时候查看源文件代码都是主页的代码如下:
<frameset framespacing="0" border="0" rows="96,*,5" frameborder="0">
<frame SRC="TOP.htm" name="fraToolbar" frameborder="no" TOPMARGIN="0"LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" scrolling="no">
<frame name="main" src="Body.jsp" target = "main">
<frame name="last" scrolling="no" noresize target="main" hidden src="bottom.htm">
<noframes>
<body oncontextmenu=self.event.returnValue=false>
<p></p>
</body>
</noframes>
</frameset>
另外如果使用右键在页面上查看源文件可以看到真正的代码,但是我不知道怎么实现!!!!
下面是需要点击返回的页面代码:
<html>
<head>
<META http-equiv=Content-Type content="text/html;charset=GBK" >
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>projdetail</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<tr>DWT7045SR*已经生成,不可重复生成</tr><br>
生成成功
<a href = "/mes/feida/projimp.jsp?prjid=fdslfc&facid=DWT7045SR">返回</a>
</body>
</html>
请高手帮忙阿!
使用如下代码测试
#include <IE.au3>
$oIE = _IEAttach ("飞达集团", "embedded")
$sHTML = _IEDocReadHTML ($oIE)
$oFrames = _IEFrameGetCollection ($oIE,分别使用了0、1、2、3其中3返回的是0)
$s2html = _IEDocReadHTML($oFrames)
MsgBox(0, "The URL", $s2html)
_IELinkClickByText ($oFrames,"返回")
MsgBox(0, "The URL", _IEPropertyGet ($oIE,"locationurl"))
MsgBox(0, "shtml", $sHTML)
得到三个页面如图
[ 本帖最后由 ngzyl 于 2008-6-25 16:46 编辑 ] $oIE = _IEAttach ( "http://192.168.1.51:8888/mes/" , "URL")
$oFrames = _IEFrameGetCollection ($oIE)
$iNumFrames = @extended
For $i = 0 to ($iNumFrames - 1)
$oFrame = _IEFrameGetCollection ($oIE, $i)
$txt =_IEBodyReadText ($oFrame )
if StringInStr ($txt , "返回")<> 0 then _IELinkClickByText($oFrames,"返回")
Next
看不到网页。。在不行偶也么办法:face (31):
[ 本帖最后由 rho123 于 2008-6-25 16:24 编辑 ] 原帖由 rho123 于 2008-6-25 16:23 发表 http://www.autoitx.com/images/common/back.gif
$oIE = _IEAttach ( "http://192.168.1.51:8888/mes/" , "URL")
$oFrames = _IEFrameGetCollection ($oIE)
$iNumFrames = @extended
For $i = 0 to ($iNumFrames - 1)
$oFrame = _IEFrameGetCollection ($oI ...
下面的附件是body.jsp的代码
这个jsp里面有2个iframe如下:<Iframeid=LFr name=LFr style="HEIGHT: 100%; VISIBILITY:inherit; WIDTH:160; Z-INDEX: 2" scrolling="AUTO" frameborder=1 src="LeftTree.jsp" >
</Iframe><Iframeid="RFr" name="RFr" style="HEIGHT: 100%; VISIBILITY: inherit; WIDTH: 100%; Z-INDEX: 0" scrolling="AUTO" frameborder="0" src="RightPane.jsp">
[ 本帖最后由 ngzyl 于 2008-6-25 17:04 编辑 ] 下面的附件是lefttree.jsp和rightpane.jsp的代码:
[ 本帖最后由 ngzyl 于 2008-6-25 17:03 编辑 ] 原帖由 auto 于 2008-6-23 21:27 发表 http://www.autoitx.com/images/common/back.gif
看图片有可能是J2EE架构的管理系统
右边可能是浮动层
如果右边不是浮动层那应该用IE.AU3里面就可以解决
的确是浮动层的, 浮动层的该怎么做啊! 帮帮我啊
页:
[1]
2