pywinauto简单操作写字板的例子
前段时间写了做web程序界面自动化的简单例子,今天写一下windows gui程序界面自动化测例子吧。
ps.咱中国人YinKaisheng封装的UIAutomation库也很好用,https://github.com/yinkaisheng/Python-UIAutomation-for-Windows
def openwordpad():
app = application.Application()
wordpad=app.start(r"C:\Program Files\Windows NT\Accessories\wordpad.exe")
wordpad.wordpadclass.RICHEDIT50W.TypeKeys("hello world it is good to see you here!".replace(' ','{SPACE}' ))
time.sleep(1)
#右键-复制一段文字-粘贴
wordpad.wordpadclass.RICHEDIT50W.TypeKeys('^a')
time.sleep(1)
wordpad.wordpadclass.RICHEDIT50W.RightClickInput(coords=(500, 100))
time.sleep(1)
wordpad.wordpadclass.RICHEDIT50W.ClickInput(coords=(550, 150))
#复制粘贴多次
for i in range(2):
wordpad.wordpadclass.RICHEDIT50W.RightClickInput(coords=(500, 300))
time.sleep(1)
wordpad.wordpadclass.RICHEDIT50W.ClickInput(coords=(550, 370))
#找到保存菜单 按alt键
#还是用快捷键保存吧。。。
wordpad.wordpadclass.RICHEDIT50W.TypeKeys('^s')
save_dlg= app.window_(title_re = u"保存为", class_name = "#32770")
save_dlg.edit.TypeKeys(u"c:\\testwordpad")
wordpad[u'保存为'][u'保存(S)'].SetFocus()
wordpad[u'保存为'][u'保存(S)'].Click()
wordpad.wordpadclass.TypeKeys('%{F4}')
pywinauto用法还是比较简单的,网上也有不少介绍了。不过pywinauto对右键菜单识别并不好,所以不得已只能靠操作移动光标到指定坐标的方法来点击右键,这样兼容性就很差了。在官方的todolist中有这么一项
Make it easy to work with context(right click) menu
不过pywinauto也已经有大半年没发新版了。。。
最后,我还是那个观点,做界面自动化要根据实际情况,对于常年不变的界面有较大用处,如果界面经常变化就要灵活变通测试方式了。
pywinauto简单操作写字板的例子的更多相关文章
- 一起来学习Android自定义控件2-简单的写字板控件
概述 上一篇文章我们对自定义控件进行了一个大体的知识介绍.今天就来学习自定义一个简单的写字板控件. 先来看看效果图 就是简单的根据手指写下的轨迹去画出内容 实现 在上一篇文章里提到了android官方 ...
- Android自己定义控件2-简单的写字板控件
概述 上一篇文章我们对自己定义控件进行了一个大体的知识介绍. 今天就来学习自己定义一个简单的写字板控件. 先来看看效果图 就是简单的依据手指写下的轨迹去画出内容 实现 在上一篇文章里提到了androi ...
- C#中检测某个类(方法、程序集等各种部分)是否应用了指定的特性以及对特性的一些简单操作
前言:不管是自定义的一些特性,或者是C#中内置的特性,均继承自Attribute这个类,这个类也提供了一些方法,方便我们使用. Attribute类有三个静态方法:1.IsDefined,如果有指定的 ...
- MongoDB快速入门学习笔记2 MongoDB的概念及简单操作
1.以下列举普通的关系型数据库和MongoDB数据库简单概念上的区别: 关系型数据库 MongoDB数据库 说明 database database 数据库 table collection 数据库表 ...
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
Visual Studio 2017中使用正则修改部分内容 最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...
- moloch1.8.0简单操作手册
moloch1.8.0简单操作手册 Sessions 页面:Sessions主要通过非常简单的查询语言来构建表达式追溯数据流量,以便分析. SPIView 页面: SPIGraph页面:SPIGrap ...
- 手把手教你从零写一个简单的 VUE--模板篇
教程目录1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 Hello,我又回来了,上一次的文章教会了大家如何书写一个简单 VUE,里面实现了VUE 的数据驱动视图 ...
- x01.MagicCube: 简单操作
看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
随机推荐
- dhtmlx Gantt知识点1
鼠标放在任务上显示信息框: <script src="../../codebase/ext/dhtmlxgantt_tooltip.js?v=5.2.0"></s ...
- 安装Office2010出现MSXML版本6.10.1129.0错误
在键盘上按“win+R”组合键出现图图示界面后,输入“regsvr32 /u msxml6.dll”,点击“确定”. 出现图示显示后,点击“确定”,并同时去试试office是否能够安装了. 如果上 ...
- linux之间免密操作
为了方便分布式集群操作,主机master需要免密操作两个节点slave1和slave2(slave1和slave2在对应机器已经修改hosts文件) 操作步骤: 首先测试连接slave1操作: [ro ...
- Jquery获取输入框属性file,ajax传输后端,下载图片
Django web开发获取input属性file,可以用request.FILES.get(' ')直接获取到,然后正常拼接路径就可以下载, 但是今天我们来用异步获取file的值在传输后端下载. 1 ...
- PySe-007-解决“Chrome正在受到自动软件的控制”
python使用selenium启动chrome的代码如下所示: #!/usr/local/bin/python # -*- coding: utf-8 -*- from selenium impor ...
- python 判断字符串是否为(或包含)IP地址
下面是某个字符串是否为IP地址import re def isIP(str): p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5 ...
- lucene基础
同一个域中,即使相同的单词,如出现两次JAVA,也是不同的token,但他们对应相同的term,在term中记录这些token信息 数据库数据,与luence数据 需要搜寻(也即索引)的field,存 ...
- 图解:window与BOM的关系
window与BOM的关系: 1.https://www.jianshu.com/p/f5409202a835
- #20175201 实验一 Java开发环境的熟悉(Linux + Eclipse)
一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. (一)命令行下Java程序开发 1.过程 2.结果 调试代码遇到的问题: 解决 ...
- 一次 Spark SQL 性能提升10倍的经历(转载)
1. 遇到了啥问题 是酱紫的,简单来说:并发执行 spark job 的时候,并发的提速很不明显. 嗯,且听我慢慢道来,啰嗦点说,类似于我们内部有一个系统给分析师用,他们写一些 sql,在我们的 sp ...