某些页面在做页面文件上传交互的时候, 有的会调出 Windows 的系统窗口来导入某些文件, 这个时候单纯的用 python+selenium 已经无法满足这个处理
这个时候可以应用别的库来支援, 对于这个我也是第一次遇到, 所以记录一下自己整一个体验的过程.
工具: 为了更好的了解这个 Windows 的窗口控件, 下载了查看空间的软件: WinSpy-1.0.3.7z
查看窗口的详细情况, 便于定位到正确位置
主要的代码:
主要函数的用法:
win32gui.FindWindow 函数: 该函数获得一个顶层窗口的句柄, 这个函数不查找子窗口. 在查找时不区分大小写.
handle=win32gui.FindWindow(class_name,window_title) : class_name: 窗口的类, window_title: 窗口的标题 . 返回结果为当前窗口的句柄信息
win32gui.FindWindowEx 函数: 该函数获得一个窗口的句柄, 这个函数查找子窗口, 从排在给定的子窗口后面的下一个子窗口开始
win32gui.FindWindowEx(handle,child,class_name,window_title):
handle: 要查找子窗口的父窗口句柄
child: 子窗口句柄 , 如果参数为 0, 查找从顶层窗口的第一个子窗口开始
class_name: 类名
window_title: 窗口名称
win32gui.SendMessage(handle,Massage,wParam,lParam):
handle : 接收信息的窗口句柄
Msg: 要发送的消息, 这些消息都是 Windows 预先定义好的
wParam: 消息的 wParam 参数
lParam: 消息的 lParam 参数
WM_SETTEXT 消息: 设置窗体的文本 ,wParam: 未使用, lParam: 变量名, 窗体文本将被设置为该字符串.
win32api.SendMessage(Mhandle, win32con.WM_COMMAND, 1, confirmBTN_handle) : 利用一个 WM_COMMAND 消息来点击确定按钮
来源: http://www.bubuko.com/infodetail-3350082.html