andyto202 发表于 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;">&nbsp;網路處滿意度</span><input id="RadButton2_ClientState" name="RadButton2_ClientState" type="hidden" autocomplete="off"></a>
请问我要怎么写才能按下这个按钮呢
谢谢

andyto202 发表于 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;">&nbsp;網路處滿意度</span><input id="RadButton2_ClientState" name="RadButton2_ClientState" type="hidden" autocomplete="off"></a>
差一个 RadButtonHover

1361739590 发表于 2017-5-9 05:10:35

本帖最后由 1361739590 于 2017-5-9 05:13 编辑

id="RadButton2"    用这个可以么,document.getElementById(id)

229989799 发表于 2017-5-9 05:14:48

网页快捕很方便

andyto202 发表于 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

请问这是为什么呢???
谢谢

1361739590 发表于 2017-5-9 07:12:16

回复 5# andyto202


    中间描述的没太明白。

andyto202 发表于 2017-5-9 10:12:37

回复andyto202


    中间描述的没太明白。
1361739590 发表于 2017-5-9 07:12 http://www.autoitx.com/images/common/back.gif

就是為什麼第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")

229989799 发表于 2017-5-9 10:33:42

IE.au3 272行

andyto202 发表于 2017-5-9 11:48:23

回复 8# 229989799


我看 272行就寫
$oObject.navigate($sUrl) 而已

1361739590 发表于 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, “”)这样会怎么样?

andyto202 发表于 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 後的網址)
然後就沒有再往下跑了

andyto202 发表于 2017-5-9 12:25:59

我把第6行的
sleep(2000)
改成
sleep(50)
就可以了
怎麼會這樣??

1361739590 发表于 2017-5-9 12:30:06

回复 11# andyto202


    再跑一遍看看,你的代码只有上面发的么,中间有少什么么?

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 的原始碼存成 文字檔
要怎麼寫呢
謝謝

1361739590 发表于 2017-5-9 13:08:46

回复 14# andyto202


    能用了?原始码文字档 什么意思?
页: [1] 2
查看完整版本: 【已解決】【请问如何按下网页的这个按钮???】