1.安装 pywinauto

pip install pywinauto

2.打开PC的.exe可执行文件的,一种方式就够用了

from pywinauto import application
app = application.Application().start('notepad.exe')

效果:

3.可以看到窗口的名字是 '无标题-记事本'

打印一下这个窗口输入的位置

print(app[chuangkou].print_control_identifiers())

结果

Control Identifiers:

Notepad - '无标题 - 记事本'    (L473, T291, R1267, B688)
['Notepad', '无标题 - 记事本', '无标题 - 记事本Notepad']
child_window(title="无标题 - 记事本", class_name="Notepad")
|
| Edit - '' (L481, T341, R1259, B658)
| ['Edit', '无标题 - 记事本Edit']
| child_window(class_name="Edit")
|
| StatusBar - '' (L481, T658, R1259, B680)
| ['StatusBar 第 1 行,第 1 列', 'StatusBar', '无标题 - 记事本StatusBar']
| child_window(class_name="msctls_statusbar32")

4.写一个试试:

from pywinauto import application
app = application.Application().start('notepad.exe')
chuangkou = '无标题-记事本'
#print(app[chuangkou].print_control_identifiers())
app[chuangkou].Edit.type_keys("我的第一个输入 哈哈\n",with_spaces=True,with_newlines=True)#with_spaces空格不减
app[chuangkou].Edit.type_keys("可喜可贺 哈哈\n",with_spaces=True,with_newlines=True)#with_newlines换行

结果:

5.点击一下菜单栏试试-->效果: 点击文件--退出--不保存

第一步:

from pywinauto import application
app = application.Application().start('notepad.exe')
chuangkou = '无标题-记事本'
#print(app[chuangkou].print_control_identifiers())
app[chuangkou].Edit.type_keys("我的第一个输入 哈哈\n",with_spaces=True,with_newlines=True)#with_spaces空格不减
app[chuangkou].Edit.type_keys("可喜可贺 哈哈\n",with_spaces=True,with_newlines=True)#with_newlines换行
app[chuangkou].menu_select("文件->退出")

6.效果

7.切换到弹出窗口点击不保存按钮

from pywinauto import application
app = application.Application().start('notepad.exe')
chuangkou = '无标题-记事本'
#print(app[chuangkou].print_control_identifiers())
app[chuangkou].Edit.type_keys("我的第一个输入 哈哈\n",with_spaces=True,with_newlines=True)#with_spaces空格不减
app[chuangkou].Edit.type_keys("可喜可贺 哈哈\n",with_spaces=True,with_newlines=True)#with_newlines换行
app[chuangkou].menu_select("文件->退出")
out_1 = '记事本'
anniu = '不保存'
app[out_1][anniu].click()

效果:

8.鼠标操作:

from time import sleep
from pywinauto.mouse import move
x=y=20
for i in range(10):
xq=x*i
yq=y*i
sleep(1)
move(coords=(xq,yq))#移动鼠标

9键盘操作:1.

#引入键盘操作
from pywinauto.keyboard import send_keys
#发送键盘指令
send_keys('')

2.

#引入键盘操作
from time import sleep
from pywinauto.keyboard import send_keys
#发送键盘指令
send_keys('{VK_LWIN}cmd{VK_RETURN}')
sleep(0.5)
send_keys('ipconfig{VK_RETURN}')

效果1:鼠标的光标位置写了值

效果2:

常用ASCII码/ASCII[ASCII]

ESC键:VK_ESCAPE (27)

回车键:VK_RETURN (13)

TAB键:VK_TAB (9)

Caps Lock键:VK_CAPITAL (20)

Shift键:VK_SHIFT (16)

Ctrl键:VK_CONTROL (17)

Alt键:VK_MENU (18)

空格键:VK_SPACE (32)

退格键:VK_BACK (8)

左徽标键:VK_LWIN (91)

右徽标键:VK_RWIN (92)

鼠标右键快捷键:VK_APPS (93)

Insert键:VK_INSERT (45)

Home键:VK_HOME (36)

Page Up:VK_PRIOR (33)

PageDown:VK_NEXT (34)

End键:VK_END (35)

Delete键:VK_DELETE (46)

方向键(←):VK_LEFT (37)

方向键(↑):VK_UP (38)

方向键(→):VK_RIGHT (39)

方向键(↓):VK_DOWN (40)

F1键:VK_F1 (112)

F2键:VK_F2 (113)

F3键:VK_F3 (114)

F4键:VK_F4 (115)

F5键:VK_F5 (116)

F6键:VK_F6 (117)

F7键:VK_F7 (118)

F8键:VK_F8 (119)

F9键:VK_F9 (120)

F10键:VK_F10 (121)

F11键:VK_F11 (122)

F12键:VK_F12 (123)

Num Lock键:VK_NUMLOCK (144)

小键盘0:VK_NUMPAD0 (96)

小键盘1:VK_NUMPAD1 (97)

小键盘2:VK_NUMPAD2 (98)

小键盘3:VK_NUMPAD3 (99)

小键盘4:VK_NUMPAD4 (100)

小键盘5:VK_NUMPAD5 (101)

小键盘6:VK_NUMPAD6 (102)

小键盘7:VK_NUMPAD7 (103)

小键盘8:VK_NUMPAD8 (104)

小键盘9:VK_NUMPAD9 (105)

小键盘。:VK_DECIMAL (110)

小键盘*:VK_MULTIPLY (106)

小键盘+:VK_ADD (107)

小键盘-:VK_SUBTRACT (109)

小键盘/:VK_DIVIDE (111)

Pause Break键:VK_PAUSE (19)

Scroll Lock键:VK_SCROLL (145)

10.常用的Shift 和Ctrl 和Alt 组合按键

"+"        ----------------------------> 按Shift
 "^"        ---------------------------->按Ctrl
 "%"      ----------------------------> 按Alt
"^s"       ----------------------------> 按Ctrl+S进行保存的操作

试试:

#引入键盘操作
from pywinauto.keyboard import send_keys
#发送键盘指令 send_keys("+a")

效果:

PC客户端自动化测试工具--pywinauto的更多相关文章

  1. 基于Sikuli GUI图像识别框架的PC客户端自动化测试实践

    写在前面 最近两天,公司有个PC客户端的测试任务,除了最基础的功能测试外,还包括稳定性测试和兼容性测试需求.刚好去年接触过Sikuli这款基于GUI图像识别框架的自动化测试工具,于是便应用于测试工作中 ...

  2. python 实现 PC 客户端自动化快速入门:pywinauto !

    本文转载自:http://www.lemfix.com/topics/420 一.前言 ​ 我们柠檬班的小可爱,在学完我们柠檬班自动化的课程之后,就掌握了接口自动化,web自动化,app自动化,这些工 ...

  3. 【转】FIddler+Proxifer工具对windows PC客户端进行抓包

    开篇:要想实现写爬虫,抓取到数据,首先我们应该分析客户端和服务器的请求/响应,前提就是我们能监控到客户端是如何与服务器交互的,下面来记录下常见的三种情况下的抓包方法 1.PC端浏览器网页抓包网页板抓包 ...

  4. FIddler+Proxifer工具对windows PC客户端进行抓包

    python的大火,带动了python爬虫. 爬虫就必定绕不开抓包. 目前最常见的就是网页抓包了,可以使用chrome进行,或者配合其他抓包软件 fiddler. 小程序有些兴起是,如跳一跳之类的,也 ...

  5. 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库

    工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...

  6. 支付宝开源非侵入式 Android 自动化测试工具 Soloπ

    Soloπ(SoloPi)是支付宝开源的一个无线化.非侵入式的Android自动化测试工具,公测版拥有录制回放.性能测试.一机多控三项主要功能,能为测试开发人员节省宝贵时间. 本文是SoloPi团队关 ...

  7. Android自动化测试工具调研

    原文地址:Android自动化测试工具调研 - Stars-One的杂货小窝 Android测试按测试方式分类,可分为两种:一种是传统逻辑单元测试(Junit),另外一种则是UI交互页面测试. 这里详 ...

  8. 手机GUI自动化测试工具选择

    (Graphical User Interface,简称 GUI,又称图形用户接口) 我们需要针对自身产品的需求,从中选取一款合适的工具来实现自动化.对于移动客户端GUI的自动化而言,需要保证选取的工 ...

  9. [1]开发准备-使用C#.NET开发基于本地数据缓存的PC客户端

    小记:本人是PHPer,对C#.NET的开发只能说看得懂,也写得了功能略简单的PC客户端程序,下面的是本人开发一款名叫“理财速记”的PC客户端软件的全过程记录,期间包括比较繁琐的C#.NET资料查询等 ...

随机推荐

  1. Qt中QGraphics类坐标映射关系详解

    1.Item(图元)坐标:属于局部坐标,通常以图元中心为原点(中心对称),非中心对称类,比如dialog类,一般以左上角为原点,正方向x朝右,y朝下. 2.setPos的坐标是父类坐标系的坐标,一般对 ...

  2. url-pattern / 与/* 的区别

    其中/和/*的区别:< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url 不会匹配到模式为*.jsp这样的后缀型url,即:*.j ...

  3. 自己动手写一个服务网关-java

    自己动手写一个服务网关 原文链接:https://www.cnblogs.com/bigben0123/p/9252444.html 引言 什么是网关?为什么需要使用网关? 如图所示,在不使用网关的情 ...

  4. Centos7查看关闭防火墙

    查看防火墙状态: firewall-cmd --state 关闭防火墙 service firewalld start 开机启动 service firewalld stop 禁止开机启动 syste ...

  5. 使用pycharm开发web——django2.1.5(五)表单和通用视图

    看了刘江老师教程这么多天,卧槽,我才发现他也曾跻身于行伍之间,interesting 刘老师这波讲解很到位,告诉你如何编写单例视图的时候忽然告诉你,其实不用这么麻烦,我们有通用视图,那些总是要做相似的 ...

  6. IDEA操作之test case coverage的方法

    作用:  用于自动化测试,检查单元测试的覆盖率情况. 安装: 1.点击 Run * with coverage 或者右键已经定义为test source的package选择(单个test class同 ...

  7. 【第一季】CH09_FPGA多路分频器设计

    [第一季]CH09_FPGA多路分频器设计 在第七节的学习中,笔者带大家通过一个入门必学的流水灯实验实现,快速掌握了VIVADO基于FPGA开发板的基本流程.考虑到很多初学者并没有掌握好Vivado ...

  8. oracle用户解锁,rename管理

    ---查看命令:用户默认表空间 SYS@ACE >select username,default_tablespace,temporary_tablespace,created from dba ...

  9. [转载]Pytorch详解NLLLoss和CrossEntropyLoss

    [转载]Pytorch详解NLLLoss和CrossEntropyLoss 来源:https://blog.csdn.net/qq_22210253/article/details/85229988 ...

  10. Django中间件理解

    一.中间件 https://www.cnblogs.com/maple-shaw/articles/9333824.html 中间件:是一个类处理django的请求和响应,本质上就是一个类,在类里面定 ...