自動化測試程式如何處理”檔案上傳”的Window Pop-up?
這篇文章主要探討一個主題,當撰寫自動化測試的時候,有些網頁提供”檔案上傳”的功能,
“檔案上傳”會出現 File Upload Window,這樣的Window 元件,自動化測試要如何處理?
因為Selenium 僅能處理網頁 Web service 並不支援 Windows視窗元件,
我們以”檔案上傳”為例子,說明如何處理這樣的 Window。
檔案上傳
這是一個很標準的檔案上傳的視窗,對於自動化測試程式來說,這個視窗中最關鍵的是
- “File Upload” Window: 自動化測試程式必須正確的辨認該視窗 Window Title 為 “File Upload”
- “File Name”: 自動化測試程式必須要給予正確的檔案位置與檔名
- “Open”按鈕:在輸入完檔名之後,正確的點擊Open 按鈕
那麼要用什麼自動化測試工具,協助我們完成上述動作呢?
自動化測試工具 – AutoIT
下載AutoIT
http://www.autoitscript.com/site/autoit/downloads/
b | c |
Window Info
利用 Window Info 來得知 File Upload 的Window 相關的必要資訊
- Window Title: “File Upload”
- Class: #32770
- File Name 的輸入 input bot: Edit1
AutoIt Script Editor
AutoIT下載完後,安裝後。啟動 AutoIT script Editor
開始 Startup > “AutoIt v3” > “AutoIT script Edtior”
根據所獲得的視窗相關資訊,完成下列 script
Compile into EXE
接著就可以把AutoIT script 轉成 EXE
Start Menu > “ AutoIt v3” > “ Compile Script to .exe”
這個 EXE 就可以自動偵測 FileUpload 視窗,並且自動輸入所需要的檔名,點擊上傳。
如果Selenium 程式是用 Java or Python 寫的,就可以直接執行該 EXE。
例如下段 Python/Selenium 例子:
[pastacode lang=”python” message=”FileUpload handling” highlight=”” provider=”manual”]
import os
...
driver.find_element_by_xpath("//*[@name=‘file-upload").click()
...
os.system("fileUpload.exe")
[/pastacode]