Python+selenium - 浏览器中遇到弹出系统窗口,如何处理 ?(python+selenium+win32gui)

某些页面在做页面文件上传交互的时候,有的会调出window的系统窗口来导入某些文件,这个时候单纯的用python+selenium已经无法满足这个处理

这个时候可以应用别的库来支援,对于这个我也是第一次遇到,所以记录一下自己整一个体验的过程。

方法一:

工具:为了更好的了解这个window的窗口控件,下载了查看空间的软件: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消息来点击确定按钮 

 

方法二:

工具:https://www.autoitscript.com/site/autoit/downloads/  --下载Download Autolt

--安装完毕

 

脚本的编辑基本与上面的差不多--通过定位操作相关的功能

--File-Save as 

 

--直接在脚本编辑窗口运行  Tools-Go(F5)

--编译为可执行文件.exe 

 

--生成的exe ,直接双击可运行,或者是python调用 

如:

import os
os.system("E:\test.exe")

posted @ 2019-12-25 21:56  依米花开了  阅读(2489)  评论(0编辑  收藏  举报