web自動化測試圖片上傳的方法:
第一種為當具有input標簽時,如:
<input type="file" name="file" multiple="multiple">
這類可以通過selenium中的send_keys()上傳 直接實現:
driver.find_element_by_css_selector("[type='file']").send_keys(r"文件地址")
第二種為當不是input標簽時,將不能使用上述方法我們可以通過selenium借助autoIt工具打開OS彈框,
去處理彈框實現文件和圖片上傳,這時我們就可以利用AutoIT工具來輔助我們來實現,如(需要在上方添加:import os):

AutoIT下載鏈接:https://www.autoitscript.com/site/autoit/
AutoIT的安裝一直下一步就搞定了,安裝成功后可以在開始菜單下看到AutoIT的所有工具,如下圖所示:

AutoIt Window Info 用於幫助我們識Windows控件信息如輸入框、按鈕等。
SciTE Script Editor 用於編寫AutoIt腳本。
Compile Script to.exe 用於將AutoIt生成 exe 執行文件。
Run Script 用於執行AutoIt腳本。
1、首先打開AutoIt Windows Info 工具,鼠標點擊Finder Tool,按住鼠標左鍵拖動到需要識別的控件上。

通過識別可知道:
窗口的title為“打開”,標題的Class為“#32770”。
文件名輸入框的class 為“Edit”,Instance為“1” ,所以控件id為“Edit1”。
打開按鈕的class 為“Button”,Instance為“1” ,所以控件id為“Button1”。
2、識別好以上數據之后打開SciTE Script Editor 編輯器進行編輯,如下:
#ControlFocus( "窗口標題", "窗口文本", 控件ID) 設置輸入焦點到指定窗口的某個控件上
ControlFocus("打開","","Edit1")
#WinWait( "窗口標題" [, "窗口文本" [, 超時時間]] ) 暫停腳本的執行直至指定窗口存在(出現)為止
WinWait("打開","",10)
#ControlSetText( "窗口標題", "窗口文本", 控件ID, "新文本" ) 修改指定控件的文本
ControlSetText("打開","","Edit1","C:\Users\Administrator\Desktop\3.png")
#Sleep( 延遲 ) 使腳本暫停指定時間段,這里是以毫秒為單位的
Sleep(1000)
#ControlClick( "窗口標題", "窗口文本", 控件ID [, 按鈕] [, 點擊次數]]) 向指定控件發送鼠標點擊命令
ControlClick("打開","","Button1")


AutoIT腳本編寫完成后,保存,可以通過菜單欄“Tools”-->“Go” 或F5運行一下腳本。
注意:運行的時候,上傳窗口需處於打開狀態。
3、 腳本編輯運行無誤后,將其保存。然后打開Complie Script to .exe工具,將保存的腳本編譯成exe可執行文件。

4、編譯成功后直接引用圖片將上傳成功

