一、上傳文件框是input形式
首先定位上傳按鈕
發(fā)送要上傳的文件
driver.findElement(By.id("XX")).sendKeys("D:\\20.jpg");
二、上傳文件框不是input形式
當(dāng)上傳文件框不是input時,需要借助AutoIT這個工具
下載地址:https://www.autoitscript.com/site/autoit/downloads/
注意一下,安裝過程中32位還是64位,安裝后,在開始菜單中會顯示這些:

常用的三個組件:
AutoIT Window Info(x64) :用來定位
SciTE Script Editor :用來寫腳本
Compile Script to .exe(x64):用來轉(zhuǎn)換成exe
下面開始定位上傳框:
1、將Finder Tool拖拽到文件名處,如圖:

2、記錄一下如下內(nèi)容:
Title=打開,ClassnameNN=Edit1,Class=#32770
注:每個瀏覽器打開的上傳框的title不一樣,需注意。
3. 再次定位打開按鈕:

4、記錄如下內(nèi)容:
ClassnameNN=Button1
5、打開SciTE Script Editor 開始寫腳本:
;ControlFocus("title" ,"text",controlID)定位到打開窗口
ControlFocus("打開","","Edit1")
;等待元素出現(xiàn),時間為20s
WinWait("[CLASS:#32770]","",20)
;設(shè)置上傳的文件
ControlSetText("打開","","Edit1","C:\Users\YBB\Desktop\1.png")
;點(diǎn)擊上傳按鈕
ControlClick("打開","","Button1");
測試是否成功的方法:
在瀏覽器中測試:
點(diǎn)擊上傳文件按鈕后,彈出選擇文件框,運(yùn)行腳本時,要保證此窗口打開狀態(tài),在SciTE Script Editor中點(diǎn)擊Tools的GO,即可運(yùn)行成功。如圖:

在cmd中測試:
首先要將SciTE Script Editor中編寫的腳本轉(zhuǎn)換成exe文件,就需要用到Compile Script to .exe(x64),打開后如圖

打開cmd,輸入如下圖, 雙引號不要省略:

driver.findElement(By.xpath("XXXX")).click();
Runtime.getRuntime().exec("C:\\Users\\YBB\\Desktop\\upload.exe");
執(zhí)行之后,上傳成功!
如果遇到upload.exe不好用,重新保存一次就好了。