找回密码
 加入
搜索
查看: 43334|回复: 73

[原创] IE操作新手专用入门教学 (一) (或者说是心得……HTML寻找控件的方法)

 火... [复制链接]
发表于 2011-11-15 00:15:34 | 显示全部楼层 |阅读模式
一、前言
    其實對於AU3 我只是個新手,程式設計我也不會,IE操作是剛好最近工作上有需要才學的,由於學習的過程 跌跌撞撞所以想到,如果可以把自己學習到的心得
分享出來,讓其他新手也知道一些過程跟方法,我想多多少少也可以幫助到別人,這篇文章與其說是教學,不如說是我的一些小小的心得,希望可以給新手解決問題
的方向。這邊必須要先感謝 suiyefeng 兄的幫助.....花了很多時間幫助我 學到不少東西 解決了我的問題......是個好人 必須要給個讚喔!!

P.S 文章中如果有引用到某些朋友發表的語法....請多見諒 教學用而已...至於大名可能會遺漏 多多見諒


二、IE自動登入某個網站 自動輸入帳號密碼

  我想 這點是很多新手其實都很想知道的....但是 資料找尋不易....願意回答的朋友也不多....當初我也是為了這點找了半天 找不到方法.....雖然找的到 範例 但是放在
自己想要登入的網站 卻老是出錯,所以.....搞了半天 還是找不出方法,後來在網上看到某個朋友的語法才了解到有個方式 可以解決我的問題.....
至於我所謂自己的網站特殊 .....請看下面的文章   http://www.autoitx.com/thread-28668-1-1.html

心得:

其實大部分的人應該都看的懂 HTML 的基本語法....但是新手找不到控件 或者 覺得應該是哪個了 但是 實際上卻無法運作....譬如說 網上有個語法的例子是..真会走路的废柴 兄的語法
#include <IE.au3>
$oIE = _IECreate("http://mail.google.com")
$oForm = _IEGetObjById($oIE,"gaia_loginform")
$Login = _IEFormElementGetObjByName($oForm,"Email")
$Pass = _IEFormElementGetObjByName($oForm,"Passwd")
_IEFormElementSetValue($Login,"用户名")
_IEFormElementSetValue($Pass,"密码")
_IEFormSubmit($oForm)


這個我看了 也是覺得看的懂作法呀.......可是在我想要登入的網站 弄個半天 卻無法 原因是 我的網站的表單沒有名稱 沒有ID 所以 怎麼弄都不行......請參考 上面的網址的發問
後來又看到了 huangke  兄的語法.......
#include <IE.au3>
 
$oIE = _IECreate("http://mail.163.com/",0,1,1,1 )
 
_IELoadWait ($oIE)
 
$oInputs = _IETagNameGetCollection ($oIE, "INPUT")
 
For $oInput In $oInputs
if $oInput.name = "username" then
       $oInput.value="您的用户名"
EndIf
Next
 
For $oInput In $oInputs
if $oInput.name = "password" then
       $oInput.value="您的密码"
EndIf
Next
 
 
For $oInput In $oInputs
if $oInput.name = "登录邮箱" then
       _IEAction ($oInput, "click")
EndIf
Next
Exit


突然發現到......原來控件 並不一定要從HTML 的 語法裡面去找.....尤其如果自己不熟悉的話......可以用搜尋的  然後用值 去判斷.....就可以找到自己想要的控件的方法....
因為 控件 前面都會有個INPUT  所以用 $oInputs = _IETagNameGetCollection ($oIE, "INPUT") 這個去搜尋所有的INPUT 然後再去判斷 所的到的訊息.....可以找出
同理.....如果有個文字區塊 不知道如何判斷 同理就可以用 _IETagNameGetCollection ($oIE, "textarea") 去抓取 然後再看看各個屬性的值 是多少 可以找到自己想要的控件
#include <IE.au3>
 
$oIE = _IECreate("https://www.xxxx.tw:8443/cas-web/login?service",0,1,1,1 )

_IELoadWait ($oIE)
 
  

$oInputs = _IETagNameGetCollection ($oIE, "INPUT")

;找到 名子控件 輸入名子
For $oInput In $oInputs
if $oInput.name = "username" then
       $oInput.value="AAAA"
EndIf
Next
 
 
;找到密碼控件  輸入密碼 
For $oInput In $oInputs
if $oInput.name = "password" then
       $oInput.value="9999"
EndIf
Next
 

;找到登入的按鈕 按下登入
For $oInput In $oInputs
;        MsgBox(0,"A",$oInput.value)
if $oInput.type = "submit" then
       _IEAction ($oInput, "click")
EndIf
Next



Sleep(10000)

;跳轉到 想要去的地方
_IENavigate ($oIE, "http://www.xxxx.tw:8081/web/41215/1")

;找到文字區塊  然後輸入想要輸入的值
$oIETXTs = _IETagNameGetCollection ($oIE, "textarea")

For $oIETXT In $oIETXTs
if $oIETXT.ID = "MAINTXT" then
       $oIETXT.value="AAAAAAAA"
EndIf
Next


;找到儲存的位置 按下儲存的按鈕
$oInputs = _IETagNameGetCollection ($oIE, "INPUT")

For $oInput In $oInputs
;        MsgBox(0,"A",$oInput.value)
if $oInput.value = "儲存" then
       _IEAction ($oInput, "click")
EndIf
Next

Sleep(10000)



;轉到登出的那個網址
_IENavigate ($oIE, "http://www.xxxx.tw:8081//c/portal/logout")

Sleep(5000)
_IEQuit ($oIE)


上面的是我的語法....從中可以看出.....找到控件以後 其實有很多屬性的資料跟值可以判斷.....語法都很像....可以每個控件的判斷方法 都不一樣.......

所以.....理論上 上面的語法 等等的 先不談效率....先求有...在求好....至少 可以幫助新手解決一些困擾....

下次 我們再來談談......如何POST  或者 GET 吧

评分

参与人数 6金钱 +140 贡献 +13 收起 理由
qqgghh1 + 30 + 5 真是挺好的人
dennis_jmtw + 20
fbi911 + 20
lpxx + 20 + 5 精品文章
nec520 + 20 很有幫助 謝謝啦

查看全部评分

发表于 2011-11-15 15:24:11 | 显示全部楼层
占地等待POST get
发表于 2011-11-16 00:23:38 | 显示全部楼层
谢谢分享,支持一下
发表于 2011-11-16 01:35:55 | 显示全部楼层
两篇都收藏了,有时间再仔细看看!..
发表于 2011-11-16 08:32:22 | 显示全部楼层
回复 1# kk_lee69
谢谢了!
发表于 2011-11-16 10:59:37 | 显示全部楼层
楼主的共享精神要支持
发表于 2011-11-16 11:01:59 | 显示全部楼层
IE操作新手专用入门教学 (一) (或者说是心得……HTML寻找控件的方法)

学习一下了!!
发表于 2011-11-21 12:24:35 | 显示全部楼层
谢谢分享,支持一下
发表于 2011-11-21 22:48:02 | 显示全部楼层
系列学习教程,必须要顶,还要学!
发表于 2011-11-23 23:45:05 | 显示全部楼层
學習學習  留著註記  以後備用
发表于 2011-11-24 16:20:45 | 显示全部楼层
感謝教學  多謝付出
发表于 2011-12-1 08:03:34 | 显示全部楼层
先收藏了 下班回家再研讀
发表于 2011-12-12 17:57:28 | 显示全部楼层
谢谢分享,支持一下
发表于 2011-12-27 16:24:01 | 显示全部楼层
回复 1# kk_lee69


    正需要呢
发表于 2011-12-28 14:02:23 | 显示全部楼层
谢谢楼主的奉献
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-19 07:36 , Processed in 0.086492 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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