找回密码
 加入
搜索
查看: 6340|回复: 16

[系统综合] 【已解決】【请问如何按下网页的这个按钮???】

  [复制链接]
发表于 2017-5-9 03:50:09 | 显示全部楼层 |阅读模式
本帖最后由 andyto202 于 2017-5-14 10:56 编辑

有一个网页
它的原始码其中有一段为
<a id="RadButton2" class="RadButton RadButton_Default rbImageButton" href="javascript:void(0)" style="display:inline-block;height:30px;width:135px;background-image:url('/Webcc2/images/Radbtn_BG.png');line-height:30px;line-height:30px;height:30px;"><span class="rbPrimaryIcon" style="top:6px;left:15px;width:24px;background-image:url('/Webcc2/images/internet_s.png');"></span><span class="rbText" style="width:100%;padding-left:0;padding-right:0;"> 網路處滿意度</span><input id="RadButton2_ClientState" name="RadButton2_ClientState" type="hidden" autocomplete="off"></a>
请问我要怎么写才能按下这个按钮呢
谢谢
 楼主| 发表于 2017-5-9 04:03:52 | 显示全部楼层
补充一下
刚发现这样子才完整
<a id="RadButton2" class="RadButton RadButton_Default rbImageButton RadButtonHover" href="javascript:void(0)" style="display:inline-block;height:30px;width:135px;background-image:url('/Webcc2/images/Radbtn_BG.png');line-height:30px;line-height:30px;height:30px;"><span class="rbPrimaryIcon" style="top:6px;left:15px;width:24px;background-image:url('/Webcc2/images/internet_s.png');"></span><span class="rbText" style="width:100%;padding-left:0;padding-right:0;"> 網路處滿意度</span><input id="RadButton2_ClientState" name="RadButton2_ClientState" type="hidden" autocomplete="off"></a>
差一个 RadButtonHover
发表于 2017-5-9 05:10:35 | 显示全部楼层
本帖最后由 1361739590 于 2017-5-9 05:13 编辑

id="RadButton2"    用这个可以么,document.getElementById(id)
发表于 2017-5-9 05:14:48 | 显示全部楼层
网页快捕很方便
 楼主| 发表于 2017-5-9 06:15:37 | 显示全部楼层
回复 3# 1361739590

回 1361739590 大
你说的写法好像可以
因为 url 是公司内部的 ip
所以我就不贴出来了
$oIE = _IECreate ("http://xxxxxx/Webcc2/default.aspx?Source=NwQos&ID=xxxxxx")
_IELoadWait($oIE)
Sleep(2000)
$oDiv = $oIE.document.getElementById("RadButton2")
$oDiv.Click()
sleep(2000)
_IENavigate($oIE, "http://xxxxxx/Webcc2/frmContentOriginal.aspx?STime=2017/05/01&ETime=2017/5/5&SERVICENAME=%E6%89%80%E6%9C%89%E5%96%AE%E4%BD%8D&SERVICECODE=PC1&ITEMTYPE=%E6%89%80%E6%9C%89%E9%A0%85%E7%9B%AE&SCORE=5,4,3,2,1&CAMPID=334,96,97,98,337,338&STATUS=1&OUTBOUNDTYPE=%E7%87%9F%E9%81%8B%E8%99%95")
我想请问的就是
当我按下那个按钮后
它会再跳到另一个页面
此时如果我在url 贴上我上面
_IENavigate 的 url
是可以有资料的
但是我如果直接像上面这样子跑
好像程式会有错误
感觉跑 _IENavigate 没有成功

错误讯息如下

"C:\Program Files (x86)\AutoIt3\Include\IE.au3" (272) : ==> The requested action with this object has failed.:
$oObject.navigate($sUrl)
$oObject^ ERROR
>Exit code: 1    Time: 5.851

请问这是为什么呢???
谢谢
发表于 2017-5-9 07:12:16 | 显示全部楼层
回复 5# andyto202


    中间描述的没太明白。
 楼主| 发表于 2017-5-9 10:12:37 | 显示全部楼层
回复  andyto202


    中间描述的没太明白。
1361739590 发表于 2017-5-9 07:12


就是為什麼第7行不會執行??

_IENavigate($oIE, "http://xxxxxx/Webcc2/frmContentOriginal.aspx?STime=2017/05/01&ETime=2017/5/5&SERVICENAME=%E6%89%80%E6%9C%89%E5%96%AE%E4%BD%8D&SERVICECODE=PC1&ITEMTYPE=%E6%89%80%E6%9C%89%E9%A0%85%E7%9B%AE&SCORE=5,4,3,2,1&CAMPID=334,96,97,98,337,338&STATUS=1&OUTBOUNDTYPE=%E7%87%9F%E9%81%8B%E8%99%95")
发表于 2017-5-9 10:33:42 | 显示全部楼层
IE.au3 272行
 楼主| 发表于 2017-5-9 11:48:23 | 显示全部楼层
回复 8# 229989799


我看 272行就寫
$oObject.navigate($sUrl) 而已
发表于 2017-5-9 11:53:32 | 显示全部楼层
你的意思是:
手动打开 http://xxxxxx/Webcc2/default.aspx?Source=NwQos&ID=xxxxxx
手动点击 RadButton2
手动打开 http://xxxxxx/Webcc2/frmContentOriginal.aspx?STime=2017/05/01&ETime=2017/5/5&SERVICENAME=%E6%89%80%E6%9C%89%E5%96%AE%E4%BD%8D&SERVICECODE=PC1&ITEMTYPE=%E6%89%80%E6%9C%89%E9%A0%85%E7%9B%AE&SCORE=5,4,3,2,1&CAMPID=334,96,97,98,337,338&STATUS=1&OUTBOUNDTYPE=%E7%87%9F%E9%81%8B%E8%99%95
这样是ok的。
但是都用代码就不行?
1. 用代码的时候你看到点击了RadButton2成功了?
2. 不点击 RadButton2,直接_IENavigate($oIE, “”)这样会怎么样?
 楼主| 发表于 2017-5-9 12:06:35 | 显示全部楼层
回复 10# 1361739590

回 1361739590 大
手動那些都是ok的
RadButton2 如果不點
直接跳最後,會認證失敗,跳到登入的畫面去
只是手動
http://xxxxxx/Webcc2/default.aspx?Source=NwQos&ID=xxxxxx
它還會轉址到
http://xxxxxx/Webcc2/main.aspx
這時候按下 RadButton2 後
網址又轉到
http://xxxxxx/Webcc2/fraMenu.aspx
這時候手動貼上最後那一大串的 url
就可以成功顯示結果
可是如果照我程式這樣子寫
它最後會停在
http://xxxxxx/Webcc2/fraMenu.aspx
(就是有按下 RadButton2 後的網址)
然後就沒有再往下跑了
 楼主| 发表于 2017-5-9 12:25:59 | 显示全部楼层
我把第6行的
sleep(2000)
改成
sleep(50)
就可以了
怎麼會這樣??
发表于 2017-5-9 12:30:06 | 显示全部楼层
回复 11# andyto202


    再跑一遍看看,你的代码只有上面发的么,中间有少什么么?
 楼主| 发表于 2017-5-9 12:41:55 | 显示全部楼层
回复 13# 1361739590

回  1361739590 大
真的就這幾行
我把剛才可以跑的程式碼貼出來
#include <IE.au3>
$oIE = _IECreate("http://XXXXXX/Webcc2/default.aspx?Source=NwQos&ID=xxxxxx")
$oDiv = $oIE.document.getElementById("RadButton2")
$oDiv.Click()
sleep(50)
_IENavigate($oIE,"http://XXXXXX/Webcc2/frmContentOriginal.aspx?STime=2017/05/01&ETime=2017/5/5&SERVICENAME=%E6%89%80%E6%9C%89%E5%96%AE%E4%BD%8D&SERVICECODE=PC1&ITEMTYPE=%E6%89%80%E6%9C%89%E9%A0%85%E7%9B%AE&SCORE=5,4,3,2,1&CAMPID=334,96,97,98,337,338&STATUS=1&OUTBOUNDTYPE=%E7%87%9F%E9%81%8B%E8%99%95")
想再請問 1361739590 大 一下
我想把最後 _IENavigate 的原始碼存成 文字檔
要怎麼寫呢
謝謝
发表于 2017-5-9 13:08:46 | 显示全部楼层
回复 14# andyto202


    能用了?原始码  文字档 什么意思?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 14:39 , Processed in 0.092169 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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