1. 程式人生 > >Selenium自動化測試---檔案上傳處理

Selenium自動化測試---檔案上傳處理

在UI測試時,經常碰到上傳檔案功能,一般情況下可採用兩種方法進行模擬,第一種普通上傳,即直接傳檔案路徑;第二種外掛上傳,採用AutoIt方法。

1)普通上傳檔案

普通的上傳是將本地檔案的路徑傳到input標籤中,所以可以直接使用send_keys()來實現

#上傳檔案的html程式碼

<tr>

<td align="right">上傳檔案:</td>

<td>

<input class="inputBg" type="file" size="45" name="message_img">

</td>

</tr>

#先定位到該上傳檔案按鈕,然後使用send_keys傳圖片路徑,實現上傳功能

driver.find_element_by_name("message_img").send_keys(“D:\\11\\a.jpg”)

該種方法實現比較簡單,一般適用於通過input標籤實現的上傳,看作一個輸入框,將上傳檔案路徑傳給程式。但有些上傳如果採用JavaScript或Ajax等技術實現的上傳,該種方法不適用,此時一般採用AutoIt工具上傳

2)AutoIt工具上傳檔案

安裝AutoIt工具:https://www.autoitscript.com/site/

AutoIt工具安裝完後,會有三個程式,分別如下:

AutoIt Windows Info:用於識別Windows控制元件的資訊

SciTE Script Editor:用於編寫AutoIt指令碼

Compile Script to.exe:用於將AutoIt生成exe執行檔案

具體操作如下:

第一步、識別Windows控制元件的資訊(AutoIt Windows Info)

主要識別兩個資訊,一個是檔名輸入框,另一個是開啟按鈕

第二步、編寫AutoIt指令碼(SciTE Script Editor)

;進行聚焦,識別Windows視窗

ControlFocus("[Class:#32770]","","Edit1")

;等待

WinWait("[Class:#32770]","",5)

#檔名輸入框輸入上傳檔案路徑

ControlSetText("[Class:#32770]","","Edit1","D:\11\a.jpg")

Sleep(2000)

#點選開啟按鈕

ControlClick("[Class:#32770]","","Button1")

備註:第一個引數使用控制元件的titile進行定位,但經常無法定位到,建議使用Class

第三步、生成exe執行檔案(Compile Script to.exe)

儲存後,點選Tools—Go—生成exe檔案

第四步、執行生成的exe檔案進行檔案上傳,在python指令碼中新增下面程式碼,讓指令碼執行exe檔案上傳程式

import os

#點選“選擇檔案”按鈕,彈出上傳框

driver.find_element_by_name("message_img").click()

#選擇上傳檔案,進行上傳

os.system("D:\\11\\test3.exe")