一谍夭、上傳文件框是input形式
首先定位上傳按鈕
發(fā)送要上傳的文件
driver.findElement(By.id("XX")).sendKeys("D:\\20.jpg");
二涕侈、上傳文件框不是input形式
當(dāng)上傳文件框不是input時(shí),需要借助AutoIT這個(gè)工具
下載地址:https://www.autoitscript.com/site/autoit/downloads/
注意一下相满,安裝過程中32位還是64位,安裝后,在開始菜單中會顯示這些:
常用的三個(gè)組件:
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
注:每個(gè)瀏覽器打開的上傳框的title不一樣篙耗,需注意迫筑。
3. 再次定位打開按鈕:
4、記錄如下內(nèi)容:
ClassnameNN=Button1
5宗弯、打開SciTE Script Editor 開始寫腳本:
;ControlFocus("title" ,"text",controlID)定位到打開窗口
ControlFocus("打開","","Edit1")
;等待元素出現(xiàn)脯燃,時(shí)間為20s
WinWait("[CLASS:#32770]","",20)
;設(shè)置上傳的文件
ControlSetText("打開","","Edit1","C:\Users\YBB\Desktop\1.png")
;點(diǎn)擊上傳按鈕
ControlClick("打開","","Button1");
測試是否成功的方法:
在瀏覽器中測試:
點(diǎn)擊上傳文件按鈕后,彈出選擇文件框蒙保,運(yùn)行腳本時(shí)辕棚,要保證此窗口打開狀態(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不好用伟桅,重新保存一次就好了。