【python】【selenium】Selenium 自動化如何進行檔案上傳?
阿新 • • 發佈:2022-03-28
一、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')