您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源軟件測(cè)試解決方案 >
autoit-解決非標(biāo)準(zhǔn)B/S自動(dòng)化測(cè)試的一個(gè)很好的思路
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/12/4 13:31:55 ] 推薦標(biāo)簽:

AutoIt 目前新是v3版本,這是一個(gè)使用類似BASIC腳本語(yǔ)言的免費(fèi)軟件,它設(shè)計(jì)用于Windows GUI(圖形用戶界面)中進(jìn)行自動(dòng)化操作.它利用模擬鍵盤按鍵,鼠標(biāo)移動(dòng)和窗口/控件的組合來(lái)實(shí)現(xiàn)自動(dòng)化任務(wù).
過(guò)多專業(yè)語(yǔ)言不廢話,google下有很多,在公司里碰到支付寶密碼控件用watir無(wú)法識(shí)別的情況(確切的說(shuō)是無(wú)法輸入密碼),困擾了好半天,突然想起用autotit來(lái)處理也許可以,稍微琢磨了下,code:
WinActivate("支付寶 - 收銀臺(tái) - Windows Internet Explorer")
ControlSend("支付寶 - 收銀臺(tái) - Windows Internet Explorer", "", "[CLASS:ATL:Edit; INSTANCE:1]", "password")
==>轉(zhuǎn)換為watir語(yǔ)法
require "win32ole"
alipay = WIN32OLE.new("AutoItX3.Control")
alipay.WinActivate("支付寶") #這行可以省略
alipay.ControlSend("支付寶", "", "[CLASS:ATL:Edit; INSTANCE:1]", "1111112")
補(bǔ)充說(shuō)明下:
文本輸入語(yǔ)法有很多,各不相同,時(shí)間緣故還未深入研究其區(qū)別,有問(wèn)題的時(shí)候不妨挨個(gè)試試^^,其他輸入文本的語(yǔ)法列舉:
1.ControlSetText("[ACTIVE]","","[CLASS:ATL:Edit; INSTANCE:1]","password")
2.Send("password",1)
->send要與click動(dòng)作輔助使用(先獲取控件焦點(diǎn))
mouseclick("left",357,508) 或
ControlClick("阿里旺旺2009", "", "[CLASS:StandardButton;INSTANCE:8]","left",1)

總結(jié):對(duì)于非標(biāo)準(zhǔn)的html標(biāo)簽的識(shí)別和操作,autoit是一個(gè)很好的解決問(wèn)題的思路!

附兩個(gè)案例
1.計(jì)算器加法
Run("calc.exe")
WinWaitActive("計(jì)算")
ControlClick("計(jì)算器","","1")
ControlClick("計(jì)算器","","+")
ControlClick("計(jì)算器","","2")
ControlClick("計(jì)算器","","=")
$Result = ControlGetText("計(jì)算器","",403)
if $Result == "3. " Then
FileWriteLine("c: esult.txt","正確。")
Else
FileWriteLine("c: esult.txt","錯(cuò)誤!")
EndIf
WinClose("計(jì)算器")

2.登錄聊天工具、發(fā)消息、退出
;參數(shù)變量設(shè)置
Global $userid = "zhanqiao123"     ;用戶id
Global $password = "password"    ;用戶password
Global $message = "autoit的測(cè)試,呵呵!"  ;發(fā)送消息內(nèi)容
Global $aliwangwang = "阿里旺旺2009"   ;旺旺title
Global $wangwangTitle = $userid & "-" & $aliwangwang ;登錄后的旺旺title
Global $aliwangPath = "C:Program FilesAliWangWang"
sign_in()        ;登錄阿里旺旺
send_message()   ;查找用戶,并發(fā)送旺旺消息
;sign_out()      ;注銷阿里旺旺
exit_process()   ;退出阿里旺旺
Func send_message()
;功能實(shí)現(xiàn):查找并發(fā)送旺旺消息
WinActivate($wangwangTitle)
;ControlSend($wangwangTitle, "", "[CLASS:EditComponent; INSTANCE:2]", $userid) ;如何清空原先已經(jīng)存在內(nèi)容?
$Z=wingetpos($wangwangTitle) ;獲取坐標(biāo)
;用戶名輸入
mouseclick("left",$Z[0]+100,$Z[1]+111)   ;搜索用戶名輸入框
Send("{HOME}+{END}{Delete}") ;清空原有內(nèi)容
Send($userid,1) ;1表示全部為普通字符
Sleep(2000)
mouseclick("left",$Z[0]+100,$Z[1]+163)   ;點(diǎn)擊搜索到的用戶名

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd