1、直接使用send_keys上传文件,需要文件上传是一个普通的input 元素
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("http://localhost:63342/python29/web/class01_selenium/demo_%E7%BD%91%E9%A1%B5.html?_ijt=g48jseptfbgm0e7o398crhqu6q")
"""直接使用send_keys上传文件,需要文件上传是一个普通的input 元素"""
# #先定位文件上传元素
# ele=driver.find_element_by_xpath("//*[@type='file']")
#
# time.sleep(2)
#
# #通过文件路径上传文件
# ele.send_keys("e:\demo.txt")
2、使用pywinauto上传文件,适用于windows操作系统,先要安装pywinauto:pip install pywinauto
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("http://localhost:63342/python29/web/class01_selenium/demo_%E7%BD%91%E9%A1%B5.html?_ijt=g48jseptfbgm0e7o398crhqu6q")
from pywinauto import Desktop
#先定位文件上传元素并点击
ele=driver.find_element_by_xpath("//*[@type='file']")
ele.click()
#不同系统交互建议使用强制等待
time.sleep(2)
app = Desktop()
#根据名字找到弹出窗口
dialog = app['打开']
# 在输入框中输入值
dialog["Edit"].type_keys("e:\demo.txt")
dialog["Button"].click()