赞
踩
测试对象:
窗口
菜单
文件
- from pywinauto.application import Application
- # 启动Navicat
- app = Application("uia").start(r"D:\Navicat for MySQL\navicat.exe")
- # 选择窗口
- dlg = app["Navicat for MySQL"]
- # 选择菜单
- menu = dlg["menu"]
- # 选择菜单项:文件
- file = menu.child_window(title="文件")
wrapper_object()
- dlg.wrapper_object() # Dialog
-
-
- menu.wrapper_object() # Menu
-
-
- file.wrapper_object() # MenuItem
dir()
dir(dlg.wrapper_object())
.texts()
file.texts() # ['文件']
.children()
- dlg.children()
- menu.children()
- file.children()
.class_name()
menu.class_name()
menu.get_properties()
- {
- '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'
- }
- pic = dlg.capture_as_image()
- pic.save("dlg.png")
- pic1 = menu.capture_as_image()
- pic1.save("menu.png")
- pic3 = file.capture_as_image()
- pic3.save("file.png")
获取菜单的子菜单项
menu.items()
通过下标去选择菜单项
menu.item_by_index(1)
通过路径去选择菜单项
menu.item_by_path('文件->新建连接...')
获取菜单项
file.items()
点击菜单项
file.click_input()
点击新建连接
需要先点击文件出现了「新建连接...」后再点击
- file.click_input()
- menu.item_by_path("文件->新建连接...").click_input()
wait
wait_not
wait_for:等待的状态
exists 表示该窗口是有效句柄
visible 表示该窗口未隐藏
enabled 表示未禁用窗口
ready 表示该窗口可见并启用
active 表示该窗口处于活动状态
timeout:超时时间
retry_interval:重试时间间隔
- # 等待窗口处于可见状态
- new_dlg.wait(wait_for="ready",timeout=10,retry_interval=1)
- print("等待通过,当前新建连接的窗口处于可见状态")
-
-
- # 等待窗口不处于可见状态
- new_dlg.wait_not(wait_for_not="ready",timeout=10,retry_interval=1)
- print("等待通过,当前新建连接的窗口不处于可见状态")
wait_cpu_usage_lower
threshold 该进程CPU占用率
timeout:超时时间
retry_interval:重试时间间隔
- app.wait_cpu_usage_lower(threshold=20,timeout=5,usage_interval=1)
- print("等待通过,当前该进程cup占用率低于%20")
wait_until方法:
Timeout 超时时间
retry_interval 重试时间
func 执行的函数
value 比较的值
Op 比较函数(默认为相等)
args 给执行函数传位置参数
kwargs 给执行函数传递关键字参数
- from pywinauto.timings import wait_until,Timings
- # 等待work返回的结果为5,继续往下执行
- wait_until(10, 1, work, 15)
讲全局计时设为默认
Timings.Defaults()
时间延长,脚本执行速度降低为1/2(慢2倍)
Timings.slow()
时间间断,所有计时器/2(快两倍)
Timings.fast()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。