selenium 非input 上传文件

本文讲述了作者在遇到网上代码报错后,如何通过Spy++工具定位Windows弹出的文件上传窗口,识别不同浏览器的控件差异,并提供Python代码示例,以实现输入文件路径并点击打开的功能。
摘要由CSDN通过智能技术生成

在网上找了很久方法,代码和博主一致但是一直报错。
后来下载了spy++,用这个重新自己定位了一下。发现和网上的代码有所区别。
建议自己定位,更准确。

# 使用win32gui和win32con对弹出的文件窗口进行控制:输入要上传的文件路径,点击打开
# 获取文件弹窗对象【第一个对象句柄,后面的父】
dialog = win32gui.FindWindow('#32770', '打开')       # Chrome 记得配套
# dialog = win32gui.FindWindow('#32770', '文件上传')           # FireFox 记得配套
# IE为'选择要加载的文件',Chrome为'打开',火狐为“文件上传”。
#有的博主这个写的是ComboBox32 我用是不行。
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)

ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
# 获取文件路径输入框对象的句柄
Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None)
# 获取 打开button按钮对象 此处的打开就和别的博主的不一样,我定位之后发现是“打开(O)” 改完代码就可以了
button = win32gui.FindWindowEx(dialog, 0, 'Button', '打开(O)')
time.sleep(1)
# 输入框输入绝对路径
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, 0, r'd:\60x91.JPG')
time.sleep(3)       # 方便观看过程
# 点击 打开
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button)
time.sleep(3)       # 方便观看过程

指路原博:(http://t.csdnimg.cn/NI9IL)

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值