PC端自动化测试(二)
测试对象:
- 窗口
- 菜单
- 文件
1 | from pywinauto.application import Application |
查看控件类型
wrapper_object()
1 | dlg.wrapper_object() # Dialog |
查看对象所支持的方法
dir()
1 | dir(dlg.wrapper_object()) |
控件的文本内容获取
.texts()
1 | file.texts() # ['文件'] |
获取子元素
.children()
1 | dlg.children() |
获取控件的类名
.class_name()
1 | menu.class_name() |
获取控件的属性
menu.get_properties()
1
2
3
4
5
6
7
8
9
10
11
12
13 {
'class_name': 'TActionMainMenuBar',
'friendly_class_name': 'Menu',
'texts': [''],
'control_id': 6555556,
'rectangle': <RECT L780, T151, R1980, B185>,
'is_visible': True,
'is_enabled': True,
'control_count': 6,
'is_keyboard_focusable': True,
'has_keyboard_focus': True,
'automation_id': '6555556'
}
截图
截图窗口
1 | pic = dlg.capture_as_image() |
截图菜单
1 | pic1 = menu.capture_as_image() |
截图菜单项
1 | pic3 = file.capture_as_image() |
菜单操作
- 获取菜单的子菜单项
1 | menu.items() |
- 通过下标去选择菜单项
1 | menu.item_by_index(1) |
- 通过路径去选择菜单项
1 | menu.item_by_path('文件->新建连接...') |
菜单项的方法
- 获取菜单项
1 | file.items() |
- 点击菜单项
1 | file.click_input() |
- 点击新建连接
需要先点击文件出现了「新建连接…」后再点击
1 | file.click_input() |
等待
- wait
- wait_not
参数
- wait_for:等待的状态
- exists 表示该窗口是有效句柄
- visible 表示该窗口未隐藏
- enabled 表示未禁用窗口
- ready 表示该窗口可见并启用
- active 表示该窗口处于活动状态
- timeout:超时时间
- retry_interval:重试时间间隔
例子
1 | # 等待窗口处于可见状态 |
等待CPU阀值
wait_cpu_usage_lower
参数
threshold 该进程CPU占用率
timeout:超时时间
retry_interval:重试时间间隔
1 | app.wait_cpu_usage_lower(threshold=20,timeout=5,usage_interval=1) |
timings模块
wait_until方法:
- Timeout 超时时间
- retry_interval 重试时间
- func 执行的函数
- value 比较的值
- Op 比较函数(默认为相等)
- args 给执行函数传位置参数
- kwargs 给执行函数传递关键字参数
1 | from pywinauto.timings import wait_until,Timings |
1 | # 等待work返回的结果为5,继续往下执行 |
- 讲全局计时设为默认
1 | Timings.Defaults() |
- 时间延长,脚本执行速度降低为1/2(慢2倍)
1 | Timings.slow() |
- 时间间断,所有计时器/2(快两倍)
1 | Timings.fast() |