Python操作PC客户端之自动化实现原理(pywinauto)
一、前言
今天在这边专门和大家一起聊聊如何使用python做PC端自动化!
二、环境安装
使用python实现来做PC端自动化,前提是先安装好python,那么还需要用到一个第三方库:pywinauto,在这边我们首先需要安装好这个库,安装命令如下:
pip install pywinauto
三、使用说明
安装好了之后,关于使用说明大家可以参照官方文档上的说明
内容翻译如下:
就是说在我们安装好Pywinauto之后,首先要确定哪种可访问性技术(pywinauto的backend)可以用于我们的应用程序,在windows上受支持的辅助功能技术有两种:
Win32 API (backend="win32") 默认backend
MS UI Automation (backend="uia")
如果您不能确定程序到底适用于那种backend,可以借助于GUI对象检查工具来做,常用的检查工具有Inspect.ex,Spy++ 等,这个不做过多介绍,大家自行学习和下载,使用很简单,也非常便捷。
四、快速入门
在安装好环境之后,并且确定了应用程序适用的backend,那么接下来我们就可以使用Pywinauto这个模块来对应用程序进行自动化操作了
1、连接到应用程序这边以window自带的计算器程序作为案例,给大家做讲解
连接应用程序,首先需要用到pywinauto.application.Application()来创建一个应用程序对象,然后再连接到应用程序,有如下两种方法:
方式一:直接通过start方法打开操作的应用程序,
1 2 3 |
|
方式二:连接已经打开应用程序,可以通过connect连接到指定的应用程序
1 2 3 |
|
运行以上代码,就会自动打开记事本记事本,如下
2、窗口选择
打开这个窗口之后,我们要操作该窗口的话,那么就的先选中这个窗口,关于窗口的选择有一下几种方式
1 2 3 4 5 6 7 8 |
|
3、控件操作
程序窗口中的内容,把它称之为控件,我们要对这个窗口的内容进行操作,就需要选择到对应的控件,
获取所有控件
我们可以通过print_control_identifiers()这个方法,来获取这个窗口下的直接子控件,如下:
app['无标题 - 记事本'].print_control_identifiers()
打印出来的结果如下:
上面打印出来的内容分别对应窗口种
选择控件
关于控件选择的方法有好几种,最简单的方法如下:
1 2 3 4 |
|
内容输入
在上面选择到编辑窗口之后,我们就可以进行内容输入了,
内容输入的方法:type_key()
1 2 3 4 |
|
运行结果如下:
4、键盘操作
输入完上述内容之后,接下来我们要修改编辑框中的内容,
通过键盘完成以下操作:全选(ctrl+A) 复制(ctrl+C) 粘贴(ctrl+V)
pywinauto.keyboard.send_key
pywinauto模拟操作键盘,需要使用到 pywinauto.keyboard.send_keys这个方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
常见的按键操作
字母按键用按键小写字母表示
常用的一些按键
- ESC键:VK_ESCAPE
- 回车键:VK_RETURN
- TAB键:VK_TAB
- Shift键:VK_SHIFT
- Ctrl键:VK_CONTROL
- Alt键:VK_MENU
按键修饰符
- # 对于一些常用的按键,可以通过修饰符来表示,使用的时候比较方便
- '+': {VK_SHIFT}
- '^': {VK_CONTROL}
- '%': {VK_MENU} Alt键
- # 上面:全选(ctrl+A) 复制(ctrl+C) 粘贴(ctrl+V)就使用的是修饰符^来代表ctrl
更多的键盘操作大家可以参考官网文档
5、鼠标操作
pywinauto. mouse
pywinauto操作鼠标,需要导入mouse模块,mouse模块中设置了一系列的鼠标操作事件
鼠标移动:move方法
move(coords=(x轴坐标,y轴坐标))
缓慢移动鼠标案例
1 2 3 4 5 6 |
|
鼠标点击:click
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
Python操作PC客户端之自动化实现原理(pywinauto)相关推荐
- PC客户端UI自动化
前言 基于spring boot + Appium Client + selenium + testng +winappdriver + Inspect搭建的一套支持客户端UI自动化的框架 系统要求: ...
- python excel 自动化-python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
- python做excel自动化-python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
- python操作word填表_Python 自动化办公—Word 文本操作命令
点击上方 小张Python,加为星标 第一时间收到 Python 技术干货! 之前介绍了一个Python包 openpyxl ,用于处理 Excel :而对于 Word 文本时同样也有对应的 Pyth ...
- python自动化和教程_python自动化基本技术原理
python自动化测试(2) 自动化基本技术原理 1 概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领可不 ...
- python操作requests
import requests # POST http://106.52.182.140/fanwe/index.php?ctl=user&act=dologin&fhash=ZsZU ...
- python实现电脑程序自动化_python基于pywinauto实现PC客户端自动化
一.前言 我们柠檬班的小可爱,在学完我们柠檬班自动化的课程之后,就掌握了接口自动化,web自动化,app自动化,这些工作中常用的自动化技能,在工作足以够应对90%以上的自动化需求了.不过近期也有部分小 ...
- python制作客户端软件_python 实现 PC 客户端自动化快速入门:pywinauto !
一.前言 我们柠檬班的小可爱,在学完我们柠檬班自动化的课程之后,就掌握了接口自动化,web自动化,app自动化,这些工作中常用的自动化技能,在工作足以够应对90%以上的自动化需求了.不过近期也有部 ...
- python微信库we_python微信库we_python操作微信客户端:WechatPCAPI库实现自动化回复...
目前有一个项目 WechatPCAPI 可以对微信进行操作,简单来说它是直接操作 PC 版微信客户端的,当然它有一定不足之处就是:PC 版微信客户端和 Python 都需要使用指定版本的,本文我们使用 ...
最新文章
- 梯度下降算法_神经网络梯度下降算法
- Paper:GPT-3《 Language Models are Few-Shot Learners》的翻译与解读
- MySQL为表的指定字段添加数据
- python帝国cms_Python的类
- Java内部类与静态内部类
- Python技巧:Docker框架的使用系列教程(一)
- 用了vscode和clion我都裂开了
- MySQL学习笔记(七)使用AutoMySQLBackup工具自动备份MySQL数据库
- 【TWVRP】基于matlab改进的遗传算法求解带时间窗约束多卫星任务规划问题【含Matlab源码 1774期】
- 【排序(C++实现)】:二分归并排序
- 信息系统项目管理师自学笔记(二十二)—— 网络应用与管理
- 【专业课程】网络协议分析与安全
- Linux控制Nvidia显卡风扇转速
- 【狂神说:秦疆】SpringMVC笔记
- 【Multisim仿真】差分比例放大电路
- 云顶之奕pbe服务器注册,云顶之弈手游pbe服
- 头脑王者服务器维护,微信头脑王者请求超时及查询服务器失败的解决方法
- 数字化是指用计算机,数字化
- Jenkins常用插件之Publish Over SSH
- 手机可以找出 暗藏的摄像头
热门文章
- Halcon小技巧:二维平面根据两个点确定方向向量+三维空间点确定姿态
- 2021-11-01第一节课总结
- 项目记录——为沙特客户Android开发Google地图应用
- 美国学生在使用计算机小短文,前段时间,一篇北大毕业美国留学生的短文!
- 课得软件丨成都web前端培训班哪儿好?
- 百度地图api自定义修改地图背景样式
- 大学计算机类专业按成绩分,那个大学的计算机专业比较好
- python编辑距离正则匹配_(C/C++学习)33.编辑距离和正则表达式匹配分析
- 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛-A-Easy Equation
- ARPU ARPPU LTV 手游收入指标名词解释