pywinauto java_Pywinauto使用方法(示例代码)
3 Pywinauto使用
连接为
http://pywinauto.github.io/
3.1 关联到一个应用,用以下方法:
start_(path)
connect_(handleor processID)
以下是示例代码
app = Application()
app.start_(“notepad.exe”)
app.connect_(path = r"c:windowssystem32
otepad.exe")
app.connect_(process = 2341)
app.connect_(handle = 0x010f0c)
3.2 调用一个窗体
当初始化app后,可以通过模糊匹配的方式操作该app中的一个窗体,变量名可以是该窗体标题的部分或全部
dlg = app.window_(title_re = ".*Part of Title.*")
dlg = app.PartOfTitle
例如,对一个写字板app应用中的窗口,在英文操作系统中,其标题是“untitled - Notepad”
可以使用以下两种方式调用该窗体
app.Untitled
app.Notepad
对于关于窗口,其标题是“About Notepad”
可以使用以下名称调用该窗体
app.AboutNotepad
3.3 调用一个控件
Pywinauto使用以下顺序定位一个控件
1: 控件的标题,即title
2:控件的类名,即friendly class
3:控件的标题加类名,即title + friendly class
对于“关于”窗口的中按钮,可以使用以下任意一种方式调用
app.AboutNotepad.OK
app.AboutNotepad.Button1
app.AboutNotepad.OKButton
如果在写字板中输入文字,执行退出时会 弹出询问窗口,对于其中的“不保存按钮”,其英文标题是Don’t Save,按照上面的规律,可以使用以下任意一方式调用该按钮,即
app.Notepad.DontSave
app.Notepad.DoSave
app.Notepad.DotSave
以上无论DontSave、DoSave、DotSave都是标题Dont’ Save的一部分,pywinauto都可以通过模糊匹配的方式找到该按钮。
3.4 控件的基本操作
如下:
Control.Click()#点击
Control.MenuSelect()#菜单选择
Control.PressMouse/MoveMouse/ReleaseMouse()#按、移动、释放鼠标
Control.TypeKeys()#键入字符
其中TypeKeys()支持组合键,例如
Ctrl: ^
Alt: %
Shift: +
以下是其常见属性的读取:
ControlID()
FriendlyClassName()
WindowText()
Rectangle()
IsEnabled()
IsVisible()
如果想了解详细,可以查看pywinauto的官方文档,其链接是
在该网页里,最上方是所有控件的基本操作和属性读取,下面依次是每个控件独有的操作,在实际的编程中,如果想知道某个控件的某个操作,可以通过文档查询。
4 其它说明
4.1 和PyUnit集成
只要代码书写符合PyUnit的要求,可以很容易的让pywinauto所测试的win32应用和PyUnit集成。
4.2 和Selenium集成
Selenium支持Python语言,因此,很容易让pywinauto与selenium。
在一些测试场景中,需要运行完某个win32应用后,立刻在web应用程序中查看结果,也就是说,一个测试同时要面对win32和web两种应用,可以用python+pywinauto+selenium组合的方式实现。
4.3 代码结构
有兴趣的网友,还可以阅读其源代码,主要的几个程序是
Application.py:与app相关
Findwindows.py:窗体的查找
Timings.py:各种操作的时间间隔设置
win32_controls.py:普通控件的访问
common_controls.py:TreeView/ListView...等控件的访问
Menuwrapper.py:菜单的访问
pywinauto java_Pywinauto使用方法(示例代码)相关推荐
- 计算机浮点表示法 教案,计算机组成原理——浮点数表示方法(示例代码)
简介这篇文章主要介绍了计算机组成原理--浮点数表示方法(示例代码)以及相关的经验技巧,文章约568字,浏览量241,点赞数7,值得推荐! 为了表示浮点数,数被分为两部分:整数部分和小数部分.例如,浮点 ...
- appsetting mysql_给IConfiguration写一个GetAppSetting扩展方法(示例代码)
给 IConfiguration 写一个 GetAppSetting 扩展方法 Intro 在 .net core 中,微软已经默认使用 appsettings.json 来代替 app.config ...
- 百度 ping php,百度ping方法示例代码 自动ping百度
百度ping方法使用示例,可以把网站地址自动ping到百度. 使用方法访问时自动ping到百度,这里的方法是生成缓存,更新缓存的时候自动ping百度,返回结果为0表示成功. 例子: 复制代码 代码示例 ...
- android语音识别方法示例代码
1. 说明 以下例程功能为:在应用程序中使用intent来调出语言识别界面,录音并识别后将识别的字串返回给应用程序.注意:使用前需要安装语音识别程序如语音搜索.2. 本例参考自android例程: d ...
- css鼠标点在文字上背景透明,CSS实现文字半透明显示在图片上方法(示例代码)
CSS实现文字半透明显示在图片上方法 在css中文字半透明我们会需要使用滤镜效果也就是css中的filter:alpha来实现了,下面来看两个文字显示在图片上并且半透明的例子. CSS让一行文字显示在 ...
- c51语言双精度浮点数,C51浮点数显示、浮点数表示方法(示例代码)
C51里用4字节存储一个浮点数,格式遵循IEEE-754标准(详见c51.pdf第179页说明).一 个浮点数用两个部分表示,尾数和2的幂,尾数代表浮点上的实际二进制数,2的幂代表指 数,指数的保存形 ...
- intel219网卡的linux驱动,ubuntu16.04安装I219-V网卡驱动问题解决方法(示例代码)
安装ubuntu16.04 LTS后无网络连接的解决方法: 1.查看是否安装网卡驱动 打开终端,输入ifconfig –a,如果出现"本地环回"字样,说明网卡驱动未安装. 2.查看 ...
- HTML5DOM红蓝盒子,DOM介绍以及使用方法(示例代码)
DOM的基本讲解 一.DOM (Document Object Model)文档对象模型 1.有属性有方法 1 var person ={2 name:'派大星',3 fav:function(){4 ...
- java生成缩略图例子_具体介绍java生成缩略图的方法示例代码
这篇文章主要介绍了java生成缩略图的方法,结合具体实例形式分析了java生成缩略图过程中所涉及的各种常见的图形处理技巧,需要的朋友可以参考下 本文实例讲述了java生成缩略图的方法.分享给大家供大家 ...
最新文章
- 02---控制移动底座1
- 能挣钱的,开源SpringBoot和Vue的企业级项目,代码很规范!
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式
- Educational Codeforces Round 95 (Rated for Div. 2)
- 相机标准之onvif---开放型网络视频接口论坛onvif 简介
- eclipse package包 java类 有问号 无法读取的问题解决
- 以WinGrub 引导安装Fedora 4.0 为例,详述用WinGrub来引导Linux的安装
- (转)C++ 库汇总(网址+简介)
- 好友伤害_家暴,对一个孩子的伤害到底有多大?
- 自动化测试 短信验证登录
- jep 使用方法与简介
- Hilbert变换及相关特征值
- JQueryUI进度条组件学习笔记
- Java 验证码图片不加载处理办法
- SQL 随机抽取样本
- 测量图上点位平面位置\高程中误差怎么计算?
- linux中()、[]、{}、(())、[[]]等各种括号的使用
- chapter3 转录组学
- ArcGIS入门教程(矢量编辑工作流程)
- 冒泡排序保姆级心得分享