在實現UI自動化測試過程中,有一類需求是實現圖片上傳,這種需求根據開發的實現方式,UI的實現方式也會不同。
一、直接利用Selenium實現
這種方式是簡單的一種實現方式,但是依賴于開發的實現。
當開發直接使用file類型的input實現圖片文件的上傳時,實例:<input type="file" name=''filename">
我們可以直接利用Selenium提供的方法實現文件上傳,但是因為依賴開發的實現,而且目前實現基本都會利用框架,所以這種實現方式有很大的局限性。
首先找到元素:WebElement file = driver.findElement(By.name("filename"));
給此元素設置值:file.sendKeys("E: estfile.jpg");
二、利用AutoIT工具實現
目前,一般實現文件圖片上傳的方式都是有一個按鈕,點擊之后直接調用操作系統自身的彈框,選擇文件后,實現上傳。因為Selenium不支持調用操作系統的操作,所以這種情況下,利用Selenium無法完成圖片上傳,這時,我們可以選擇借用其他工具實現。
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腳本,然后編譯成可執行文件