selenium 上传文件
selenium上传文件的方式
input类型上传文件:
1 #打开上传文件页面 2 3 file_path = 'file:///' + os.path.abspath('test3.html') 4 5 driver.get(file_path) 6 7 #定位上传按钮,添加本地文件 8 9 driver.find_element_by_name("file").send_keys(r'F:\xxxx\meinfoSSZNZLYX.txt')
非input类型上传文件:
通过pip install pypiwin32安装win32gui和win32con的库
单文件上传:
1 import win32gui 2 3 import win32con 4 5 6 7 # win32gui 8 9 dialog = win32gui.FindWindow('#32770', u'文件上传') # 对话框名字,不同流量器不同名 10 11 ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None) 12 13 ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None) 14 15 Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None) # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄 16 17 button = win32gui.FindWindowEx(dialog, 0, 'Button', None) # 确定按钮Button 18 19 20 21 win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, r'C:\Users\AS\Desktop\inteData.xlsx') # 往输入框输入绝对地址 22 23 win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 按button
多文件上传:
1 dialog = win32gui.FindWindow('#32770', u'文件上传') # 对话框 2 ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None) 3 ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None) 4 Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None) 5 button = win32gui.FindWindowEx(dialog, 0, 'Button', None) 6 7 win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, r'"C:\Users\AS\Desktop\inteData.xlsx" "C:\Users\AS\Desktop\inteData.xlsx"') #多文件上传 8 win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)
@成为那个自己