UIAutomation运用
UIAutomation支持多种语言,这里就通过python来调用。UIAutomation是第三方库,所以首先需要安装库pip install uiautomation。先用UIAutomation操作Windows自带计算器.
UIAutomation支持多种语言,这里就通过python来调用。UIAutomation是第三方库,所以首先需要安装库pip install uiautomation。先用UIAutomation操作Windows自带计算器.
1.定位窗体
首先启动计算器,然后启动UISpy.exe,在Control View的树形结构中,找到计算器。前面已经学习了两种方式定位,二者任选。结果如图x-x所示。

图x-x UISpy定位计算器
可以看出,在UISpy中选择计算器后,计算器就会多一个红色的框,用于提示用户,当前定位的元素指向程序哪个部分。
2.定位元素
在UISpy中找到程序后,可以在其下的树形结构中找到每一个元素。比如按钮“7”,找到后,可以在Properties里看到“7”的属性,同时,计算器上的“7”周围有个红色的小框,如图x-x所示。

图x-x 定位元素和获取元素属性
对于按钮“7”重要的属性已经显示在Properties中,ClassName:‘Button’,AutomationId:
‘137’,Name:’7’等,都是后面代码可能会用到的
3.编码实现
通过UISpy对需要的窗体的元素定位获取属性后,可以通过python代码实现程序自动化。代码如下:
import subprocess import uiautomation import time #打开计算器程序 subprocess.Popen('calc.exe') time.sleep(2) #通过UIAutomation定位窗体 calcwindow = uiautomation.WindowControl(searchDepth=1, Name='计算器') #在最上层显示 calcwindow.SetTopmost(True) #点击数字“7” calcwindow.ButtonControl(Name='7').Click() #点击加号 calcwindow.ButtonControl(Name='加').Click() #点击数字“5” calcwindow.ButtonControl(Name='5').Click() #点击等号 calcwindow.ButtonControl(Name='等于').Click() #获取数据显示框的内容 result = calcwindow.TextControl(AutomationId="158") print(result.Name) #做验证 if result.Name.split(' ')[0] == '12': print("测试成功.") else: print("测试失败.") time.sleep(2) #关闭窗体 calcwindow.Close() |
下期推送:UIAutomation API
为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。
