1、连接到应用程序

连接应用程序,首先需要用到pywinauto.application.Application()来创建一个应用程序对象,然后再连接到应用程序,有如下两种方法:

方式一:直接通过start方法打开操作的应用程序,

from pywinauto import application
# 方式一:创建应用程序时可以,指定应用程序的合适的backend,start方法中指定启动的应用程序
# 对于Windows中自带应用程序,直接执行,对于外部应用应输入完整路径
app = application.Application(backend='uia').start(r'd:/notepad.exe')

方式二:连接已经打开应用程序,可以通过connect连接到指定的应用程序

from pywinauto import application# 方式二:通过process指定进程号连接 # 通过handle 指定句柄号 连接
app = application.Application('uia').connect(process=4035)
app = application.Application('uia').connect(handle=123555)

2、窗口选择

打开窗口之后,要操作该窗口的话,那么就的先选中这个窗口,关于窗口的选择有以下几种方式

# 方式1 :窗口名可以为中文
wind_2 = app["窗口标题"]
wind_2 = app["窗口类名"]# 方式2 :不适用于窗口名为中文的
wind_1 = app.窗口标题​
wind_1 = app.窗口类名​

3.窗口操作

#窗口最大化
wind.maximize()
#窗口最小化
wind.minimize()
#窗口恢复正常大小
wind.restore()
#关闭窗口
wind.close()
#获取窗口坐标(左,顶,右,下)
wind.rectangle()

4、控件操作

我们可以通过print_control_identifiers()这个方法,来获取这个窗口下的直接子控件,如下:

app['无标题 - 记事本'].print_control_identifiers()

关于控件选择的方法有好几种,最简单的方法如下:

1

2

3

4

# 选择控件的方法

wind_calc = app["窗口名"]["控件名"]

# 案例操作:选择编辑窗口

edit = app['无标题 - 记事本']['Edit']

内容输入的方法:type_key()

1

2

3

4

# 在编辑栏种输入内容

edit.type_keys("柠檬班")

edit.type_keys("python自动化")

edit.type_keys("musen")

5、键盘操作

通过键盘完成以下操作:全选(ctrl+A) 复制(ctrl+C) 粘贴(ctrl+V)

pywinauto模拟操作键盘,需要使用到 pywinauto.keyboard.send_keys这个方法

from pywinauto.keyboard import send_keys​send_keys("^a")​    # 全选(ctrl+A) send_keys("^c")​    # 复制(ctrl+C)send_keys("^v")​    # 粘贴(ctrl+V)send_keys("{VK_RETURN}")​# 回车键send_keys("^v")     # 粘贴(ctrl+V)

常见的按键操作

字母按键用按键小写字母表示

常用的一些按键

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
更多的键盘操作大家可以参考官网文档

 6、鼠标操作

pywinauto. mouse

pywinauto操作鼠标,需要导入mouse模块,mouse模块中设置了一系列的鼠标操作事件

鼠标移动:move(coords=(x轴坐标,y轴坐标))

鼠标点击:click

# button指定左击还是右击,coords指定鼠标点击的位置​# 3.1、鼠标单击# 指定位置,鼠标左击mouse.click(button='left', coords=(40, 40))# 指定位置 鼠标右击# mouse.click(button='right', coords=(100, 200))# 3.2 鼠标双击mouse.double_click(button='left', coords=(140, 40))​# 4 按下鼠标:press# 将属性移动到(140,40)坐标处按下mouse.press(button='left', coords=(140, 40))# 5 释放鼠标:repleace# 将鼠标移动到(300,40)坐标处释放,mouse.release(button='left', coords=(300, 40))​# 6、右键单击指定坐标mouse.right_click(coords=(400, 400))​# 7、鼠标中键单击指定坐标(很少用的到)mouse.wheel_click(coords=(400, 400))​# 8 滚动鼠标# coords:指定鼠标的坐标位置。# wheel_dist指定鼠标滚轮滑动的次数,正数往上,负数往下。mouse.scroll(coords=(1200,300),wheel_dist=-3)

Python自动化操作pywinauto相关推荐

  1. python自动化操作电脑的简单实现

    最近由于工作原因,需要机械性重复性的计算好多组数据,而这些数据不同点就在于输入参数的不同,所以就想着利用python来解放双手. 在网页直接bing"python自动化"后,发现了 ...

  2. python开发autocad_利用Python自动化操作AutoCAD的实现

    1 Python自动绘图 在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图.CAD图像 ...

  3. 用Python自动化操作PPT,看完这篇文章就够了!

    作者:超级大洋葱806 https://tangxing.blog.csdn.net/article/details/109568830 大家好,我是小z 今天给大家分享一波Python自动化操作PP ...

  4. Python自动化操作Excel

    二.基础准备 环境:python 3.7+ 需要安装第三方模块:xlwings 运行编辑器:jupyter notebook 三.动手动脑 3.0 我们为什么要学编程 首先和大家简单聊一下运营(这里运 ...

  5. wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!! 但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用 ...

  6. python自动化操作浏览器

    python的语法精炼简洁,并且很方便集成自动化工具selenium,因此特别适合各个行业的工作人员学习和编写简单程序来实现"机器人助理"帮我们处理频繁重复的网站操作. 废话不多说 ...

  7. python用于cad_【笔记】利用Python自动化操作AutoCAD

    1 Python自动绘图 在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图.CAD图像 ...

  8. 用Python自动化操作Excel制作报表,真的是太方便啦!!!

    今天小编来介绍一下如何用Python来操作Excel文件,当中需要用到的模块叫做openpyxl,其中我们会涉及到一些基本常规的操作,例如有 插入与查询数据 分类统计数据 数据的可视化 字体颜色的更改 ...

  9. python操作autocad_【笔记】利用Python自动化操作AutoCAD

    1 Python自动绘图 在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图.CAD图像 ...

最新文章

  1. Complex Instance Placement
  2. luogu P1345 [USACO5.4]奶牛的电信Telecowmunication(建图技巧 - “割点”模板 、最小割)
  3. Linux管道指令(pipe)与shell 重定向的区别
  4. 基于 Laravel、Vue.js开发的全新社交系统----ThinkSNS+
  5. mongodb java crud_MongoDB用Java,简单的CRUD操作,两种方法,附源码下载。
  6. linux mysql迁移,Linux 下安装MySQL并迁移备份
  7. Cocos2d-X 2.2嵌入MFC的子窗口
  8. Java JSP EL
  9. (04)VTK移动模型,判断是否相交
  10. 让手机成为电脑的摄像头,Droidcam(linux) 的安装及使用
  11. 博主力推!!NRF52832 BLE 抓包sniffer来了!附带安装使用说明
  12. 苹果手机一直显示搜索服务器,苹果手机safari浏览器搜索页面没有了
  13. 使用sort(function(a,b){return a-b})对数组进行排序的原理
  14. redis lettuce 调优
  15. Mac 开启 HIDPI 设置各种分辨率 HIDPI mac high sierra 2k
  16. 箱线图(Boxplot)
  17. FTP客户端--实现FTP文件的上传下载功能
  18. “健康童乐园”10000户落成 精准弥合乡村儿童早期发展差距
  19. java冒泡排序经典代码(Java冒泡排序)
  20. 埃森哲大连java面试_埃森哲软件工程师面试经验

热门文章

  1. SH-SSS丨面向有声读物的跨说话人语音风格迁移
  2. windows核心宝藏
  3. MCS-51单片机的定时器/计数器
  4. lotus notes java_远程数据库的Lotus Notes Java复制
  5. 基于ElementUI 国际化电话组件el-phone-number-input用法
  6. c语言51单片机数字时钟设计,51单片机数字时钟功能需求及设计实现(带闹钟)...
  7. 《大话设计模式》php版本
  8. 最新最全的OCP认证考试分类题库047+042+043与Oracle认证培训10g OCA/OCP中文教材下载...
  9. [校招-春招]-字节跳动-客户端开发工程师-一面-总结
  10. 私企做阿米巴经营模式失败的原因——灵魂5问!