selenium 上传文件

Posted xiaochou1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(rF:xxxxmeinfoSSZNZLYX.txt)
View Code

非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, rC:UsersASDesktopinteData.xlsx)  # 往输入框输入绝对地址
22 
23         win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)  # 按button
View Code

 多文件上传:

技术分享图片
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:UsersASDesktopinteData.xlsx" "C:UsersASDesktopinteData.xlsx")  #多文件上传
8         win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)  
View Code

 

以上是关于selenium 上传文件的主要内容,如果未能解决你的问题,请参考以下文章

selenium之文件上传

Selenium系列 - 针对两种上传文件方式的实现方案

Selenium用法详解上传下载JAVA爬虫

selenium之上传文件或图片的操作

python+selenium+autoit实现文件上传

无法在 selenium python 中上传文件 [重复]