安装pywin32库:pip install pywin32 1. 访问百度网址,点击图片按钮: 2. 点击上传 3. 使用winspy工具定位路径输入框 和打开按钮 如何定位请自行查找 参考https://www.cnblogs.com/xiaogongjin/p/11546518.html#4361591 4.输入绝对路径,点击打开 ,前提条件为,windows 上传弹框已经可见,可以sleep1-2秒等待出现 小白环境 Name: Version: python 3.7 WinSpy 1.0.2.7 pywin32 227 链接:https://pan.baidu.com/s/1FDbdczsg1Q8QL1-4RfsX8g 提取码:ktrz 注意:pywin32兼容Python版本,以上环境亲测可用 5.下方代码直接复制执行即可,需要修改文件路径 from selenium import webdriver import win32gui import win32con import time driver=webdriver.Chrome() driver.get('https://www.baidu.com') driver.maximize_window()#最大 driver.find_element_by_class_name('soutu-btn').click() time.sleep(2) imgpath='D:\\abc.jpg' driver.find_element_by_class_name('upload-pic').click() time.sleep(2) # driver.find_element_by_class_name('upload-pic').send_keys('imgpath') #一级顶层窗口,此处title为上传窗口名称,浏览器不一样上传窗口名称不一样 dialog = win32gui.FindWindow("#32770",'打开') #二级窗口 ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None) #三级窗口 comboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None) #四级窗口 edit = win32gui.FindWindowEx(comboBox,0,'Edit',None) button = win32gui.FindWindowEx(dialog,0,'Button',None) #执行操作 输入文件路径 win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,'D:\\abc.jpg') #点击打开上传文件 win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button) 打包封装方法 def file_upload(self,filePath,browser_type='chrome'): ''' windows 上传弹框已经可见,可以sleep1-2秒等待出现 :param filePath: 文件绝对路径例 D:\\123.abc :param browser: 浏览器类型默认为 chrome :return: ''' if browser_type.lower()== 'chrome': title='打开' elif browser_type.lower()== 'Firefox': title='文件上传' elif browser_type.lower() =='ie': title='选择要加载的文件' logging.info('本次使用{0}进行上传操作'.format(browser_type)) # 一级顶层窗口,此处title为上传窗口名称,浏览器不一样上传窗口名称不一样 dialog = win32gui.FindWindow("#32770", title) # 二级窗口 ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, "ComboBoxEx32", None) # 三级窗口 comboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, "ComboBox", None) # 四级窗口 edit = win32gui.FindWindowEx(comboBox, 0, 'Edit', None) button = win32gui.FindWindowEx(dialog, 0, 'Button', None) # 执行操作 输入文件路径 win32gui.SendMessage(edit, win32con.WM_SETTEXT, None, filePath) # 点击打开上传文件 win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)