在實(shí)現(xiàn)UI自動(dòng)化測(cè)試過(guò)程中,有一類需求是實(shí)現(xiàn)圖片上傳,這種需求根據(jù)開(kāi)發(fā)的實(shí)現(xiàn)方式,UI的實(shí)現(xiàn)方式也會(huì)不同。
一、直接利用Selenium實(shí)現(xiàn)
這種方式是簡(jiǎn)單的一種實(shí)現(xiàn)方式,但是依賴于開(kāi)發(fā)的實(shí)現(xiàn)。
當(dāng)開(kāi)發(fā)直接使用file類型的input實(shí)現(xiàn)圖片文件的上傳時(shí),實(shí)例:<input type="file" name=''filename">
我們可以直接利用Selenium提供的方法實(shí)現(xiàn)文件上傳,但是因?yàn)橐蕾囬_(kāi)發(fā)的實(shí)現(xiàn),而且目前實(shí)現(xiàn)基本都會(huì)利用框架,所以這種實(shí)現(xiàn)方式有很大的局限性。
首先找到元素:WebElement file = driver.findElement(By.name("filename"));
給此元素設(shè)置值:file.sendKeys("E: estfile.jpg");
二、利用AutoIT工具實(shí)現(xiàn)
目前,一般實(shí)現(xiàn)文件圖片上傳的方式都是有一個(gè)按鈕,點(diǎn)擊之后直接調(diào)用操作系統(tǒng)自身的彈框,選擇文件后,實(shí)現(xiàn)上傳。因?yàn)镾elenium不支持調(diào)用操作系統(tǒng)的操作,所以這種情況下,利用Selenium無(wú)法完成圖片上傳,這時(shí),我們可以選擇借用其他工具實(shí)現(xiàn)。
1、AutoIT介紹
AutoIT是一個(gè)類似腳本語(yǔ)言的軟件,利用此軟件我們可以方便的實(shí)現(xiàn)模擬鍵盤(pán)、鼠標(biāo)、窗口等操作,實(shí)現(xiàn)自動(dòng)化。
2、實(shí)現(xiàn)原理
利用AutoIT編寫(xiě)合適的腳本,然后將腳本編譯成可執(zhí)行文件,在自動(dòng)化實(shí)現(xiàn)時(shí),直接調(diào)用此腳本實(shí)現(xiàn)文件上傳。
備注:編寫(xiě)腳本和編譯,需要借助AutoIT提供的工具,但是腳本編譯成可執(zhí)行文件后,可以直接使用,不再需要安裝AutoIT。
3、自動(dòng)化調(diào)用
AutoIT腳本編譯成可執(zhí)行文件后,放到本地的某一個(gè)目錄下
自動(dòng)化實(shí)現(xiàn)過(guò)程中,需要上傳圖片時(shí),首先定位到【上傳】字樣文本,點(diǎn)擊此按鈕
執(zhí)行編輯后的可執(zhí)行文件,實(shí)現(xiàn)文件上傳
實(shí)例:
假如,要上傳圖片的頁(yè)面及html顯示如下:
利用AutoIT編寫(xiě)的腳本編譯后的可執(zhí)行文件的存放目錄:E:upfile.exe
自動(dòng)化實(shí)現(xiàn)代碼:
4、AutoIT安裝
下載并安裝AutoIT,下載鏈接:https://www.autoitscript.com/site/autoit/
AutoIT安裝成功后,可以在開(kāi)始菜單下看到AutoIT的所有工具,如下圖所示:
其中分為幾類,AutoIT Window Info用來(lái)識(shí)別Windows控件,根據(jù)識(shí)別的控件信息編寫(xiě)腳本;Complie Script to .exe,用來(lái)將利用AutoIt編寫(xiě)的腳本,編譯成可執(zhí)行文件;Run Script 用來(lái)執(zhí)行AutoIT的腳本信息;SciTE Script Editor用來(lái)編寫(xiě)AutoIt腳本。
接下來(lái)是利用以上四種工具,來(lái)編寫(xiě)AutoIT腳本,然后編譯成可執(zhí)行文件