1. 程式人生 > 其它 >【python】【selenium】Selenium 自動化如何進行檔案上傳?

【python】【selenium】Selenium 自動化如何進行檔案上傳?

一、input標籤

對於通過input標籤實現的上傳功能,可以將其看作是一個輸入框,即通過send_keys()指定本地檔案路徑的方式實現檔案上傳

 

二、非input標籤

需要通過一些和系統互動的方式去完成上傳操作,比如通過pywin32,pywinauto 或者是pyautogui這些第三方庫進行操作。

方法一:pywin32,通過模擬鍵盤敲擊的方式實現,程式碼如下:

from selenium import webdriver
import win32com.client
import time

driver = webdriver.Chrome("D:\\tool\selenium\chromedriver.exe
") driver.implicitly_wait(5) driver.get("https://tinypng.com/") # 觸發上傳檔案的操作 driver.find_element_by_css_selector("#top .icon").click() sh = win32com.client.Dispatch("WScript.shell") time.sleep(3) sh.Sendkeys("D:\\test\script\study\seleniumStu\day6\qqjt.png\n") # 無目標的,單純的敲擊鍵盤 driver.quit()

 

方法二:pywinauto

from pywinauto.keyboard import send_keys

time.sleep(3)
send_keys(r'd:\1.png')
#回車操作
send_keys('{VK_RETURN}')

 

方法三:pyautogui

import pyautogui

time.sleep(3)
pyautogui.typewrite(f'"d:\1\png" "d:\2\png"')#有時候會與系統輸入法衝突,可以改成大寫的D試試

pyautogui.keyDown('enter')
pyautogui.keyUp('enter')