赞
踩
更多内容,可以微信搜索[公][众][号]【郑大钱呀
】,关注我们,一起学技术!
由于测试工作的需要,对于某些场景,总是需要进行一些重复的操作,比如测试一个股票交易下单的功能,需要覆盖不同的种类代码(主板、创业板、科创板、场内基金等),这个时候使用人工的方式去测试,枯燥乏味,且效率不高,所以就想寻求一种解决方案,通过UI自动化的方式来完成重复工作。目前支持Windows平台的UI自动化工具或框架有很多,比如:Autoit、pywinauto、UIautomation、airtest 等等,这里我们使用由国人yinkaisheng
开发的UIautomation框架来实现。
uiautomation是yinkaisheng
业余时间开发的供其自己使用的一个模块,uiautomation封装了微软UIAutomation API,支持自动化Win32,MFC,WPF,Modern UI(Metro UI), Qt, IE, Firefox等UI框架,最新版uiautomation2.0目前只支持Python 3版本,依赖comtypes和typing这两个包,但不要使用3.7.6和3.8.1这两个版本,comtypes在这两个版本中不能正常工作。
uiautomation支持在Windows XP SP3或更高版本的Windows桌面系统上运行。如果是Windows XP系统,请确保系统目录有这个文件:UIAutomationCore.dll。如果没有,需要安装补丁 KB971513 才能支持UIAutomtion.在Windows 7或更高版本Windows系统上使用uiautomation时,要以管理员权限
运行Python,否则uiautomation运行时很多函数可能会执行失败或抛出异常。或者先以管理员权限运行cmd.exe,在cmd中再调用Python。
工具好不好,先来试一下,先感受一下,这里我们以电脑中自带的计算器为例,简单的感受一下,实现一系列的计算,演示的步骤如下:
calc
,打开计算器程序UIautomation自动化代码演示
from time import sleep import uiautomation as auto class Calc(): def open_calc(self): #打开计算器 desktop=auto.PaneControl(Name='任务栏') #点击任务栏 desktop.Click() #Win+D ,显示桌面 desktop.SendKeys('{Win}d') #Win+R ,打开运行界面,并输入calc,打开浏览器 desktop.SendKeys('{Win}r') run_win = auto.WindowControl(Name='运行') run_win_edit=run_win.EditControl(ClassName='Edit',Name='打开(O):') run_win_edit.SendKeys("calc") run_win_ok=run_win.ButtonControl(ClassName="Button",Name='确定') run_win_ok.Click() sleep(3) def calc_auto(self): calc_win=auto.WindowControl(ClassName='ApplicationFrameWindow',Name="计算器") # 开始计算 calc_five=calc_win.ButtonControl(Name='五') calc_five.Click() calc_five.Click() calc_mult=calc_win.ButtonControl(Name='乘以') calc_mult.Click() calc_one = calc_win.ButtonControl(Name='一') calc_one.Click() calc_three = calc_win.ButtonControl(Name='三') calc_three.Click() calc_four = calc_win.ButtonControl(Name='四') calc_four.Click() calc_equal= calc_win.ButtonControl(Name="等于") calc_equal.Click() sleep(3) calc_win_close_btn = calc_win.ButtonControl(AutomationId='Close') calc_win_close_btn.Click() if __name__ == '__m
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。