web自动中利用win32上传附件

一 场景如下

在百度首页,"按照图片搜索"时,需要上传图片.
在这里插入图片描述

在这里插入图片描述

二 工具和环境

1\需要安装winspy这个工具
在这里插入图片描述
2\需要安装win32库 pip install pywin32

winspy的用法

定位

(1)调用文件上传的窗口
在这里插入图片描述
(2)打开winspy,单击"瞄准"形状的按钮,不松手.将按钮拖动到需要定位的窗口元素,比如"文件名"的输入框和"打开"按钮
在这里插入图片描述
(3)然后在winspy获取元素的class 和 元素文本
在这里插入图片描述
如果没有文本内容,cation就是空
(4)查看元素的层级路径.
在winspy面板点击"more"(有些版本是tree),
在这里插入图片描述
点击"locate",就会显示"edit"所在的路径. 依次是句柄\classname\文本
在这里插入图片描述
可以看到"edit"一共有4级路径,而且可以得到每一级路径的句柄\类和文本
在这里插入图片描述

使用pywin32 完成上传文件

win32gui.FindWindow(IpClassName,IpWindowName)
ipclassname 元素的class ipwindowname caption

win32gui.FindWindowEX(hwndparent=0, hwndchildafter=0,ipszclass=None,ipszwindow=None)
搜索类名和文本匹配的窗体
hwndparent 若不为0,则搜索句柄为hwndparent的窗体
hwndchildafter 若不为0,则按照z-index的顺序搜索hwndchildafter的子窗体,否则从第一个子窗体搜索
ipszclass class 的名称
ipszwindow 窗体的caption

win32gui.sendMessage(hwnd,msg,Wparame,Iparame)
hwnd:接受消息的窗体的句柄
msg:消息,预先有windows定义好的命令
wparame和iparame不清楚,关于这两个参数可以参考这篇文章
wparame和iparame的解释

import win32gui
import win32con

# 获取顶级窗口,传入顶级窗口的class和caption
dialog = win32gui.FindWindow("#32770","打开文件")

# 获取二级窗口
# 传入父窗口,0,窗口class和caption,如果caption为空就用None
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","打开(&O)")

# "文件名"输入文件路径
win32gui.sendmessage(edit,win32con.WM_SETTEXT,None,"文件路径")
# 点击"打开"
win32gui.sendmessage(dialog,win32con.WM_CoMMANd,1,button)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值