python-selenium -- 文件上传操作

Posted 雨彡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-selenium -- 文件上传操作相关的知识,希望对你有一定的参考价值。

一、文件上传操作

小工具辅助:Spy++;

安装pywin32的库,命令行安装 python -m pip install pypiwin32,安装后重启Pycharm

 

win32gui.FindWindow(IPClassName,IPWindowName)

自顶层窗口开始寻找匹配条件的窗口,并返回这个窗口的句柄;

IPClassName:类名,在Spy++里能够看到;

IPWindowName:窗口名,标题栏上能看到的名字

 

win32gui.FindWindowEx(hwndParent=0,hwndChildAfter=0,IPszClassName=None,IPszWindowName=None)

搜索类名和窗体名匹配的窗体,并返回这个窗体的句柄,找不到就返回0;

hwndParent:若不为哦,则搜索句柄为hwndParent的窗口子窗体;

hwndChildAfter:若不为0 ,则按照z-index的顺序从hwndChildAfter向后开始搜索子窗体;

IPszClassName:字符型,是窗口的类名,这个可以在Spy++里找到;

IPszWindowName:字符型,是窗口名,也就是标题栏上能看到的那个标题

 

win32gui.SendMessage(hWnd,Msg,wParam,IParam)

hWnd:整型,接收消息的窗口句柄;

Msg:整型,要发送的消息,这些消息都是windows预定义好的;

wParam:整型,消息的wParam参数;

IParam:整型,消息的IParam参数;

 

如:百度网盘上传操作--点击上传按钮弹出文件框

 

 1 #文件上传操作--命令行安装 python -m pip install pypiwin32,安装后重启Pycharm
 2 import win32gui
 3 import win32con
 4 import time
 5 
 6 #以百度网盘上传为例,点击上传,弹出上传文件对话框
 7 #一级顶层窗口
 8 dialog = win32gui.FindWindow("#32770","打开")
 9 #二级窗口
10 comboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None)
11 #三级窗口
12 comboBox = win32gui.FindWindowEx(comboBoxEx32,0,"ComboBox",None)
13 #四级窗口 -- 文件路径输入区域
14 edit = win32gui.FindWindowEx(comboBox,0,"Edit",None)
15 
16 #二级窗口 -- 打开按钮
17 button = win32gui.FindWindowEx(dialog,0,"Button",None)
18 
19 #1、输入文件路径
20 filepath = "E:\\\\chromedriver.exe"
21 win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filepath)
22 time.sleep(5)
23 #2、点击打开按钮
24 win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button)
 

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

Python-selenium-自动化测试模型

python-selenium -- 弹出框处理

Python-selenium-元素识别和定位

python-selenium-定位一组对象

python-selenium解决验证码二次免密码登陆的问题

在docker容器中部署python-selenium+chrome-headless自动化脚本(续)