1、AutoIT介紹
AutoIT是一個類似腳本語言的軟件,利用此軟件我們可以方便的實現模擬鍵盤、鼠標、窗口等操作,實現自動化。
2、實現原理
利用AutoIT編寫合適的腳本,然后將腳本編譯成可執行文件,在自動化實現時,直接調用此腳本實現文件上傳。
備注:編寫腳本和編譯,需要借助AutoIT提供的工具,但是腳本編譯成可執行文件后,可以直接使用,不再需要安裝AutoIT。
3、自動化調用
- AutoIT腳本編譯成可執行文件后,放到本地的某一個目錄下
- 自動化實現過程中,需要上傳圖片時,首先定位到【上傳】字樣文本,點擊此按鈕
- 執行編輯后的可執行文件,實現文件上傳
實例:
假如,要上傳圖片的頁面及html顯示如下:
利用AutoIT編寫的腳本編譯后的可執行文件的存放目錄:E:\upfile.exe
自動化實現代碼:
4、AutoIT安裝
- 下載並安裝AutoIT,下載鏈接:https://www.autoitscript.com/site/autoit/
- AutoIT安裝成功后,可以在開始菜單下看到AutoIT的所有工具,如下圖所示:
-
其中分為幾類,AutoIT Window Info用來識別Windows控件,根據識別的控件信息編寫腳本;Complie Script to .exe,用來將利用AutoIt編寫的腳本,編譯成可執行文件;Run Script 用來執行AutoIT的腳本信息;SciTE Script Editor用來編寫AutoIt腳本。
- 接下來就是利用以上四種工具,來編寫AutoIT腳本,然后編譯成可執行文件
5、利用AutoIT編寫腳本
(1) AutoIt Window Info
打開此工具,利用此工具來識別Windows控件信息,如輸入框、按鈕等。
此工具打開的界面顯示:
用鼠標拖住工具上的Finder Tool的圖標(即圖中藍色圈圈部分)到要識別的控件上,控件的唯一標識信息會顯示在工具的左側部分(圖中紅框標出的部分)。
從顯示的結果得知,此控件的Title=“打開”,Class為Button,Instance=1。我們就是利用控件的這些信息,定位控件,編寫腳本。
(2) SciTE Script Editor
根據以上所識別的空間信息,利用此編輯器,利用此軟件根據AutoIT的語法編寫腳本。
附實現文件上傳需要的幾個方法:
ControlFocus ( "窗口標題", "窗口文本", 控件ID) 設置輸入焦點到指定窗口的某個控件上(即:控件ID“文件名”輸入框的id)
WinWait ( "窗口標題" [, "窗口文本" [, 超時時間]] ) 暫停腳本的執行直至指定窗口存在(出現)為止
ControlSetText ( "窗口標題", "窗口文本", 控件ID, "新文本" ) 修改指定控件的文本(即:控件ID“文件名”輸入框的id)
Sleep ( 延遲 ) 使腳本暫停指定時間段
ControlClick ( "窗口標題", "窗口文本", 控件ID [, 按鈕] [, 點擊次數]] ) 向指定控件發送鼠標點擊命令(即:控件ID“打開”按鈕的id)
其中,title即AutoIt Window Info識別出的Title字段,controlID即AutoIt Window Info識別出的Class和Instance的拼接,如上圖拼接后的結果應為:Button1
實例:
ControlFocus("打開","","Edit1") ;識別windows窗口 WinWait("[CLASS:#32770]","",10) ;窗口等待十秒 ControlSetText("打開", "", "Edit1", "C:\Users\vivo\Desktop\award_code_template5.xls") ;想輸入框中輸入需要上傳的地址 Sleep(2000) ControlClick("打開", "","Button1"); ;點擊[打開】按鈕
AutoIT腳本編寫完成后,保存后才可以通過菜單欄“Tools”-->“Go” 運行一下腳本。注意,運行的時候,上傳窗口需處於打開狀態。
6、AutoIT腳本編譯成可執行文件
腳本編輯運行無誤后,將其保存。然后打開Complie Script to .exe工具,將保存的腳本編譯成exe可執行文件。
點擊“Browse”選擇保存的腳本文件,點擊“Convert”將其生成exe文件。
driver.findElement(By.name("uploadFile")).click(); // 點擊選擇文件按鈕 Thread.sleep(3000); // 設置等待3秒 Runtime exe = Runtime.getRuntime(); // Java 的Runtime 模塊的getruntime.exec()方法可以調用exe 程序並執行。 try { String str = "E://upload.exe"; exe.exec(str); // 運行指定位置的.exe文件 } catch (IOException e) { System.out.println("Error to run the exe"); e.printStackTrace(); }
至此,利用AutoIT實現圖片上傳的流程結束。