自動化測試程式如何處理另存新檔的Window Pop-up?

自動化測試程式如何處理”檔案上傳”的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/

AutoIt GImageXb AutoIt Script Editorc

 

Window Info

利用 Window Info 來得知 File Upload 的Window 相關的必要資訊

  • Window Title: “File Upload”
  • Class: #32770
  • File Name 的輸入 input bot: Edit1

AutoIt Windows Info for FileUpload

 

 

AutoIt Script Editor

AutoIT下載完後,安裝後。啟動 AutoIT script Editor

開始 Startup > “AutoIt v3” > “AutoIT script Edtior”

根據所獲得的視窗相關資訊,完成下列 script

 

AutoIT script for FileUpload

 

 

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]

 

Leave a Reply

Your email address will not be published. Required fields are marked *