【自動化專題】selenium如何輕松搞定文件上傳


使用selenium做自動化時,我們經常會遇到的一個讓人頭疼的問題就是文件上傳。

問題的難點在於selenium無法識別並操作Windows窗口,若我們可以繞過彈出框直接把文件信息上傳給選擇按鈕,難點就解決了。

以下是常見頁面形式

分析HTML,發現無論是普通前台還是Extjs,他們的html有一個共同的特點,具有以下代碼:

  <input ..... type="file" ...../>

ok,只要我們使用selenium自帶的sendkeys把文件路徑(相對絕對無所謂)傳給該元素,就可繞過選擇窗口直接上傳文件.

解決方案誕生了

driver.findElement(XXXXX).sendKeys("filePath");

 

Have a Try

博客園上傳圖片:driver.findElement(By.name("file")).sendKeys("C:\Users\123\Pictures\a.png");

QQ郵箱上傳附件:driver.findElement(By.name("UploadFile")).sendKeys("C:\Users\123\Pictures\a.png");

定位元素根據情況而定,不一定用name;文件路徑可以使相對路徑,大家自行修改就好

 

注意:執行sendKeys的元素一定要符合inputtype="file"條件,否則就是你沒找對上傳文件的對象,會上傳失敗的。

像這樣的,一定注意不要上傳到前面的那個input上,否則會失敗的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM