sahitest.com/demo/php/fileUpload.htm
![](https://img.haomeiwen.com/i3968643/541f4ad961b36595.png)
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://sahitest.com/demo/php/fileUpload.htm')
# 获取input文件上次元素
upload = driver.find_element(By.ID,'file5')
upload.send_keys(r"absloute_path/file.jpg")
driver.find_element(By.NAME,'submit').click()
time.sleep(3)
driver.close()
搭建编程框架
![](https://img.haomeiwen.com/i3968643/31bc291f43374526.png)
1. file文件夹用于存放待上传的文件
2. utils文件夹用于存放上传/下载的工具
![](https://img.haomeiwen.com/i3968643/45a55a3f22a8c59c.png)
# file_upload1.py
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from utils.get_file_path import get_logo_path
path = get_logo_path() # 获取待上传文件的路径
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://sahitest.com/demo/php/fileUpload.htm')
time.sleep(3)
# 获取input文件上次元素
upload = driver.find_element(By.ID,'file')
time.sleep(3)
upload.send_keys(r"{}".format(path))
# upload.send_keys(r"C:\Users\xxx\PycharmProjects\spider\file\logo.bmp")
time.sleep(3)
driver.find_element(By.NAME,'submit').click()
time.sleep(3)
driver.close()
# get_file_path.py
import os
def get_logo_path():
path = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))),"file","logo.bmp")
return path
上传案例2 有些时候无法用send_keys
上传 - View Design (iviewui.com)
pip install pywinauto
![](https://img.haomeiwen.com/i3968643/edf60bce6be11759.png)
import time
from pywinauto import keyboard
from selenium import webdriver
from selenium.webdriver.common.by import By
from utils.get_file_path import get_logo_path
path = get_logo_path() # 获取待上传文件的路径
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://iviewui.com/view-ui-plus/component/form/upload')
driver.implicitly_wait(10)
driver.find_element(By.XPATH,'//button[@class="ivu-btn ivu-btn-default"]').click()
time.sleep(3)
keyboard.send_keys(r"{}".format(path))
time.sleep(3)
keyboard.send_keys('{ENTER}')
time.sleep(3)
driver.close()
网友评论