windows gui測試工具:AutoIt


windows gui測試工具:AutoIt

2017-01-09

目錄

1 簡介
2 示例1 記事本自動化操作
3 示例2 上傳文件

 

1 簡介


 返回

AutoIt v3 是用以編寫並生成具有 BASIC 語言風格的腳本程序的免費軟件, 它被設計用來在Windows GUI(用戶界面)中進行自動操作。AutoIt 最初是為PC(個人電腦)的"批量處理"而設計, 用於對數千台PC進行(同樣的)配置. 現在,autoit是一個支持復雜表達式,自定義函數,循環等的強大腳本軟件。

  • AutoIt3.chm:幫助文檔
  • AutoIt:窗口信息工具
  • SciTE.exe:腳本編輯器,可編輯、編譯運行腳本
  • AutoIt3.exe:腳本運行器,是一個非常小並且獨立的應用程序,完全不依賴像 .net 或者 vb 使用的厚重的運行庫. 所有您需要運行的腳本都能使用主程序執行
  • Aut2Exe:腳本編譯器,進行編碼后轉化成獨立的可執行文件

2 示例1 記事本自動化操作


 返回

自動化操作代碼'OperateNotepad.au3':

Run("notepad.exe")
WinWaitActive("無標題 - 記事本")
Send("This is some text.")
WinClose("無標題 - 記事本")
WinWaitActive("記事本", "保存(&S)")
;WinWaitActive("Notepad", "Do you want to save") ; When running under Windows XP
Send("!n")

抓取窗口信息

圖1 抓取窗口信息

 AutoIt腳本轉化成可執行文件

圖2 AutoIt腳本轉化成可執行文件

3 示例2 上傳文件


 返回

當上傳控件不是input元素,而是桌面窗口,這個時候利用Selenium的sendkeys方法是行不通的。可以用autoIt來操作。

被測網頁代碼'upload.html':

<body>
<input type="file" id="fileControl" value="選擇文件"/>
</body>

自動化操作代碼'uploadFile.au3':

;first make sure the number of arguments passed into the scripts is more than 1
If $CmdLine[0]<2 Then Exit EndIf ;if parmas num <2 ,then break
;$CmdLine[0] ;參數的數量
;$CmdLine[1] ;第一個參數 (腳本名稱后面)
;$CmdLine[2] ;第二個參數
;都是從cmd傳入參數
 handleUpload($CmdLine[1],$CmdLine[2])

;定義上傳函數,有兩個參數,第一個是瀏覽器名字,第二參數是文件路徑
 Func handleUpload($browser, $uploadfile)
     Dim $title                          ;定義一個title變量
            ;根據彈窗的title來判斷是什么瀏覽器
            If $browser="ie" Then                          ; 代表IE瀏覽器
                  $title="選擇要加載的文件"
            ElseIf $browser="chrome" Then               ; 代表谷歌瀏覽器
                 $title="打開"
            ElseIf    $browser="firefox" Then             ; 代表火狐瀏覽器
                  $title="文件上傳"
            EndIf

            if WinWait($title,"",4) Then ;等待彈出出現,最大等待時間是4秒
                   WinActivate($title)                  ;找到彈出窗口之后,激活當前窗口
                   ControlSetText($title,"","Edit1",$uploadfile)   ;把文件路徑放入輸入框
                   ControlClick($title,"","Button1")                ;點擊保存或者打開或者上傳按鈕
            Else
            Return False
            EndIf
 EndFunc

操作

  1. 把'uploadFile.au3'轉化成'uploadFile.exe''
  2. 用ie打開被測網頁代碼'upload.html',並點擊'瀏覽'元素,系統自動打開桌面瀏覽窗口,如下圖3所示
  3. 打開cmd.exe窗口,輸入以下命令,按回車執行,結果如下圖所示
"D:\TestUploadFileWithAutoit\uploadFile.exe" "ie" "D:\TestUploadFileWithAutoit\1.png"

圖3 點擊‘瀏覽...’按鈕,打開瀏覽桌面窗口 

圖4 上傳后結果

Java調用Upload.exe代碼:

public void handleUpload(String browser, File file) {
    String filePath= file.getAbsolutePath();
    String executeFile= "D:\\TestUploadFileWithAutoit\\UploadFile.exe"; 
    String cmd= "\""+ executeFile+ "\""+ " "+ "\""+ browser+ "\""+ " "+ "\""+ filePath+ "\"";
    try{
        Process p= Runtime.getRuntime().exec(cmd);
        p.waitFor();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM