Web UI 自動化時,通過 AutoIT 的解決 Windows 控件
Selenium 進行WEB的UI自動化時經(jīng)常會遇到windows彈框,比如上傳、下載框時的提示框,這種彈框selenium自身是無法處理的,這時我們可以借助AutoIT這個工具。
一、介紹
AutoIt 是用以編寫并生成具有 BASIC 語言風格的腳本程序的免費軟件,它被設(shè)計用來在Windows GUI(用戶界面)中進行自動操作。通過它可以組合使用模擬鍵擊、鼠標移動和窗口/控件操作等來實現(xiàn)自動化任務(wù)。
https://www.autoitscript.com/site/autoit/downloads/。
二、下載 & 安裝
這里內(nèi)容分兩步:
● 第一步:python環(huán)境中autoIT模塊的安裝,主要是為了在python代碼中通過autoIT模塊提供的函數(shù)等,實現(xiàn)各種操作的模擬。
● 第二步:PC機器上安裝autoIT,主要為了方便做元素的識別。
A:python環(huán)境的安裝
直接在命令行窗口通過pip安裝:pip install PyAutoIt。
B:pc安裝
直接去官網(wǎng)下載windows的安裝包或解壓包即可。
三、使用示例
以下載為例,在firefox瀏覽器上下載時默認會彈出這樣的提示框,如果我們不點擊其保存按鈕,則不會開始下載,也無法進行其他操作。那么如何點擊保存呢?
Python中點擊操作交給autoIT完成,代碼寫成如下:
import autoitautoit.control_focus("請輸入要保存的文件名…", "[Class:Button; instance:1]")autoit.control_click("請輸入要保存的文件名…", "[Class:Button; instance:1]")
代碼運行時,可以實現(xiàn)點擊保存按鈕,開始下載的效果。
四、代碼拆解
語句:autoit.control_click("請輸入要保存的文件名…", "[Class:Button; instance:1]")中。
A. autoit是我們安裝的第三方模塊名稱。
B. control_click對應(yīng)點擊操作,操作函數(shù)有很多,需要時根據(jù)提示選擇即可。
C. 函數(shù)參數(shù)列表,函數(shù)的第一個參數(shù)代表操作哪個窗口,通常為目標窗口的title,第二個參數(shù)代表操作哪個控件,書寫方式比較多樣,:如”Edit1”或"[Class:Button; instance:1]"或”[Class:Button]”等,可以綜合多個屬性進行元素定位。
這里涉及到一個問題,我怎么知道要操作的控件class是什么instance是什么?這種時候window里安裝的autoIT就派上用場了:
打開安裝目錄下的:Au3Info.exe程序,通過它可以查看控件各屬性:使用方法:拖動查詢工具,到指定控件,然后松開鼠標,即可在左側(cè)看到當前窗口及控件信息:
在控件選項卡中,可以查看到詳細的控件信:
類別名或高級模式的內(nèi)容復(fù)制出來就可以做控件識別了。 是不是也很簡單那呢?
更多說明請參考官網(wǎng)文檔:
https://www.autoitscript.com/autoit3/docs/functions.htm。