python windows ui自动化_pywinauto处理UI自动化
之前一个项目的特殊性, 以及一些操作权限上的问题,不能使用现有工具进行UI自动化。 在一些资深tester建议下决定采用Python的pywinauto模块来处理Windows控件的UI操作。
1. 首先搭建pywinauto环境。
2). 安装elementtree(elementtree-1.2.7-20070827-preview.win32.exe) 和ctypes(ctypes-1.0.2.win32-py2.5-AMD64.msi)。
3). 安装已经下载好的pywinauto(pywinauto-0.4.2)
> cd to xxx:\pywinauto-0.4.2
> python setup.py install
4). 测试下是否安装成功
> from pywinauto import application
> app = application.Application().start_("notepad")
> app.notepad.TypeKeys("%FX")
这段代码可以打开notepad'并将notepad通过使用用快捷键关闭。
2. 首先还需要一个工具: Swapy-ob 来获取控件属性
Swapy-ob 是一个可以获得控件原生的 Python 代码的工具。
3. 一些控件的基本操作
TreeView
Click()
Select()
ListView
Check()
UnCheck()
Select()
Note: ListView sometimes supports not good, especially do the action from lead to test machine.
Button
Click()
PressButton()
Edit
SetEditText()
SetText()
Window
Wait()
WaitNot()
Listbox / Combobox
Select()
Checkbox / Radio button
Check()
UnCheck()
MenuItem
MenuItem.Select()
MenuItem.Click()
Others
Close()
DoubleClick()
4.关联一个instance
start_() – The application is not running and need to start it
connect_() – The application is already running.
For example:
app = Application()
app.start_(“c:\windows\system32\notepad.exe”)
app.connect_(title_re = ".*Notepad", class_name ="Notepad")
5. 调用一个窗口
a_window = app.window_(title = "Page Setup", class_name = "#32770")
也可以用handle方式来处理:
w_handle = pywinauto.findwindows.find_windows(title=u'Active Directory Users and Computers', class_name='MMCMainFrame')[0]
aduc_window = pwa_app.window_(handle=w_handle)
aduc_window.print_control_identifiers() //打印当前窗口的所有控件和属性。
6. TypeKeys()快捷键
SHIFT +
CTRL ^
ALT %
空格键是SPACE
BACKSPACE {BACKSPACE}、{BS} or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER} or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
+ {ADD}
- {SUBTRACT}
* {MULTIPLY}
/ {DIVIDE}
7. Example for create AD user
pwa_aduc.window_(title=u'New Object - User', class_name='#32770').Wait('exists', timeout=30, retry_interval=1)
u_window= pwa_aduc.window_(title=u'New Object - User', class_name='#32770')
u_window['First name:Edit'].Wait('enable', timeout=30, retry_interval=1)
u_window['First name:Edit'].TypeKeys(User)
u_window['User logon name:Edit0'].TypeKeys(User)
u_window['Next'].Wait('enable', timeout=30, retry_interval=1)
u_window['Next'].Click(button='left', double=False)
u_window['Password:Edit'].Wait('exists', timeout=30, retry_interval=1)
u_window['Password:Edit'].TypeKeys(Password)
u_window['Confirm password:Edit'].TypeKeys(Password)
u_window['User must change password at next logon'].UnCheck()
u_window['Next'].Wait('enable', timeout=30, retry_interval=1)
u_window['Next'].Click(button='left', double=False)
u_window['Finish'].Click(button='left', double=False)
8. 当然因为Selenium 支持 Python, 所以可以用python+pywinauto+selenium组合的方式实现Windows和Web UI的处理。
Helpful link:
python windows ui自动化_pywinauto处理UI自动化相关推荐
- python +opencv 根据图片定位进行UI自动化
python +opencv 根据图片定位进行UI自动化 前言: 做过移动端ui自动化的小伙伴,就会发现很多控件的元素是一样的或者是找不到的,为了解决这个痛点,于是通过图片灰度处理返回坐标x,y找到控 ...
- LuckyFrameWeb测试平台(一款支持接口自动化、WEB UI自动化、APP自动化,并且支持分布式测试的全纬度免费开源测试平台)
官网:luckyframe.cn 源码地址:https://gitee.com/seagull1985/LuckyFrameWeb 分布式测试:使用Web-Client的方式,Web端负责基本信息管理 ...
- python 桌面程序自动化测试_对Windows桌面应用程序进行UI自动化测试
题记:本文简述如何利用appium对Windows桌面应用程序进行UI自动化测试. 所谓UI自动化测试,就是模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试. 要对Windows ...
- python自动化控制_python用于自动化控制编程
Python自动化是做什么的 软件测试里面有Python自动化测试这个课程吗? 在人工智能+大数据的飞速发展的大环境下,Python开发语言日渐火爆,Python自动化测试也将逐渐取代传统的软件测试, ...
- C#【自动化测试】对Windows桌面应用程序进行UI自动化测试
文章目录 1.文章一: 题记 UI自动化测试 参考 2.文章二: 3.重要资源[实例]: 1)已验证可用[非常好的例子,便于理解] 关键代码 2)未验证 1.文章一: 题记 本文简述如何利用appiu ...
- web python 自动化是什么_Web自动化Selenium+Python系列之一自动化测试基础
汇智妹一直央求宝哥出版一本<Selenium+Python自动化测试>的书.经宝哥思来想去,最终还是决定免费公开出来,希望给大家带来一些帮助. 宝哥承诺: 从今日起,每周更新三次,如有异常 ...
- 《Python编程快速上手——让繁琐工作自动化》——第一部分 Python编程基础 第1章 Python基础 1.1 在交互式环境中输入表达式...
本节书摘来自异步社区<Python编程快速上手--让繁琐工作自动化>一书中的第1章,第1.1节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区"异步 ...
- python模块之lib2to3(py2转py3自动化工具)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之lib2to3(py2转py3自动化工具) #http://tieba.baidu.com ...
- python自动化办公入门书籍-Python如此神奇,让繁琐工作自动化 (文中含Python基础)...
原标题:Python如此神奇,让繁琐工作自动化 (文中含Python基础) "你在2个小时里完成的事,我们3个人要做两天."21世纪早期,我的大学室友在一个电子产品零售商店工作.商 ...
- 【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》
文章目录 图书前言 图书简介 图书作者.简介 图书好评 图书目录 总结:本人选择此图书的意义 图书前言 光阴似箭,岁月如梭.转眼之间,距离本书最早的电子书出版已经过去了三年之久.承蒙广大读者的厚爱,电 ...
最新文章
- 在Redis中设置了过期时间的Key,需要注意哪些问题?
- 搭建 数字证书_CA认证介绍及搭建过程
- python导入openpyxl报错问题,终于解决啦
- php 数组接在数组后面,PHP array_splice()接合数组用法的简单介绍
- 聚集索引和非聚集索引实例
- 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 可行解表示 | 目标函数推导 | 目标函数最大值分析 )
- TensorFlow入门:计算图
- Mol Cell Proteomics. |胡丹丹| 雷公藤红素通过SIRT1-FXR 信号通路保护胆汁淤积性肝损伤...
- java与c/c++进行socket通信的一些问题
- htop进程管理工具
- YOLOV3目标检测模型训练实例
- 比赛中学习(1)-使用python将大量图片重命名
- 初级计算机课,教学ppt课件计算机初级培训.ppt
- 了解一下DDD领域驱动设计
- 矩阵乘法c语言蓝桥杯,[蓝桥杯]ALGO-86.算法训练_矩阵乘法
- 用741运算放大器搭建RC正弦振荡器:文氏电桥振荡电路
- html 自动获取屏幕分辨率,HTML5教程 如何获取手机屏幕分辨率和浏览器分辨率
- 这几本值得你一看再看的程序员素养必备好书
- redis的高级教程
- 拉里·埃里森亲自支招,数据库自动化之后,DBA何去何从???
热门文章
- Luogu3455[POI2007] ZAP-Queries
- mysql 5.7 存储引擎_mysql5.7——innodb存储引擎总结-阿里云开发者社区
- hexo添加_hexo 添加标签和分类
- android studio 工程rebuild没反应,Andriod Studio Clear Project或Rebuild Project出错
- 纳韦斯托克斯方程的推导_这5个改变世界的方程,跟你想的不一样!
- mysql新建数据库数据类型_数据库Mysql的学习(二)-数据类型和创建
- K8S-删除Terminating状态的namespace
- JZOJ 4.2 C组 打鼹鼠
- Ubuntu server解决不能访问外网问题
- a 和an 的用法区别