利用Selenium實現圖片文件上傳的兩種方式

利用Selenium實現圖片文件上傳的兩種方式  

來自張真真   2016-03-17 20:25:43|  分類: 自動化測試|舉報|字號 訂閱

在實現UI自動化測試過程中,有一類需求是實現圖片上傳,這種需求根據開發的實現方式,UI的實現方式也會不同。

一、直接利用Selenium實現

     這種方式是最簡單的一種實現方式,但是依賴於開發的實現。

    當開發直接使用file類型的input實現圖片文件的上傳時,實例:<input type="file" name=''filename">

    我們可以直接利用Selenium提供的方法實現文件上傳,但是因爲依賴開發的實現,而且目前實現基本都會利用框架,所以這種實現方式有很大的侷限性。

  •   首先找到元素:WebElement  file = driver.findElement(By.name("filename"));
  •   給此元素設置值:file.sendKeys("E:\testfile.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腳本,然後編譯成可執行文件

5、利用AutoIT編寫腳本

(1)  AutoIt Window Info 

       打開此工具,利用此工具來識別Windows控件信息,如輸入框、按鈕等。

      此工具打開的界面顯示:

     用鼠標拖住工具上的Finder Tool的圖標(即圖中藍色圈圈部分)到要識別的控件上,控件的唯一標識信息會顯示在工具的左側部分(圖中紅框標出的部分)。

    從顯示的結果得知,此控件的Title=“打開”,Class爲Button,Instance=1。我們就是利用控件的這些信息,定位控件,編寫腳本。

(2) SciTE Script Editor

     根據以上所識別的空間信息,利用此編輯器,利用此軟件根據AutoIT的語法編寫腳本。

     附實現文件上傳需要的幾個方法:  

    ControlFocus ( "窗口標題", "窗口文本", 控件ID)   設置輸入焦點到指定窗口的某個控件上

    WinWait ( "窗口標題" [, "窗口文本" [, 超時時間]] )  暫停腳本的執行直至指定窗口存在(出現)爲止

    ControlSetText ( "窗口標題", "窗口文本", 控件ID, "新文本" )   修改指定控件的文本

    Sleep ( 延遲 )   使腳本暫停指定時間段

    ControlClick ( "窗口標題", "窗口文本", 控件ID [, 按鈕] [, 點擊次數]] )   向指定控件發送鼠標點擊命令

    其中,title即AutoIt Window Info識別出的Title字段,controlID即AutoIt Window Info識別出的Class和Instance的拼接,如上圖拼接後的結果應爲:Button1

    實例:

        

    AutoIT腳本編寫完成後,可以通過菜單欄“Tools”-->“Go” 運行一下腳本。注意,運行的時候,上傳窗口需處於打開狀態。

6、AutoIT腳本編譯成可執行文件

     腳本編輯運行無誤後,將其保存。然後打開Complie Script to .exe工具,將保存的腳本編譯成exe可執行文件。

     

    點擊“Browse”選擇保存的腳本文件,點擊“Convert”將其生成exe文件。

    至此,利用AutoIT實現圖片上傳的流程結束。
發佈了18 篇原創文章 · 獲贊 11 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章