selenium上传文件的方式
input类型上传文件:
#打开上传文件页面
file_path = 'file:///' + os.path.abspath('test3.html')
driver.get(file_path)
#定位上传按钮,添加本地文件
driver.find_element_by_name("file").send_keys(r'F:\xxxx\meinfoSSZNZLYX.txt')
非input类型上传文件:
通过pip install pypiwin32安装win32gui和win32con的库
单文件上传:
import win32gui
import win32con
# win32gui
dialog = win32gui.FindWindow('#32770', u'文件上传') # 对话框名字,不同流量器不同名
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None) # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
button = win32gui.FindWindowEx(dialog, 0, 'Button', None) # 确定按钮Button
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, r'C:\Users\AS\Desktop\inteData.xlsx') # 往输入框输入绝对地址
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 按button
多文件上传:
dialog = win32gui.FindWindow('#32770', u'文件上传') # 对话框
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, r'"C:\Users\AS\Desktop\inteData.xlsx" "C:\Users\AS\Desktop\inteData.xlsx"') #多文件上传
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)