9、python+selenium——實現文件上傳


文件上傳是web頁面上很常見的一個功能一般分兩個場景:

一、一種是input標簽,這種可以用selenium提供的send_keys()方法輕松解決

二、另外一種是非input標簽實現起來比較困難,可以借助autoit工具或者SendKeys第三方庫。

    1 Autolt 需要去調用其生成的.au3或.exe文件.----不推薦,了解
    2 SendKeys第三方庫(目前只支持到2.7版本)----不推薦,了解
    3 Python pywin32庫,識別對話框句柄,進而操作 ------pip install pywin32

首先來看第一種input標簽——這種有一個很明顯的標識:它是一個input標簽,並且type屬性的值為file,如下圖紅色框框

 

 

from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://test.api2.danglaoshi.net:3001/course/list")
driver.add_cookie({"name":"sid","value":"s%3AaZDRAZT2cT-U83UIXOPjoEDFa3oGd57B.UtMLs9VnZuyr8EAH38h9ymRK45bI%2BINUk%2Fz59N8H8mM"})
driver.get("http://test.api2.danglaoshi.net:3001/course/list")

driver.find_element_by_xpath("//button[@onclick=\"window.location.href='/course/addCourse'\"]").click()
# 定位選擇按鈕,並從本地選擇文件
driver.find_element_by_xpath("//input[@id=\"courseThumbnailInput\"]").send_keys(r"C:\Users\TTT\Desktop\2028.jpg_wh300.jpg")
#定位上傳按鈕,點擊上傳文件
driver.find_element_by_xpath("//*[@id=\"addCourseForm\"]/div/div[1]/div/div/div/div[1]/div/div[1]/div[2]/div[2]/a").click()

 


免責聲明!

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



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