pywinauto 控件
Basic User Input Modules
pywinauto模块 窗口自动化操作相关
pywinauto的初级入门
pywinauto精品入门教程
PyWinAuto用户基本输入模块
Windows GUI程序自动化之pywinauto
1、启动app
from pywinauto.application import Application
app = Application(backend='uia').start("notepad.exe")
app = Application(backend='uia').start(r"D:\\Program Files\\Tencent\\QQ\\Bin\\QQScLauncher.exe")
2、连接app
①、通过进程号连接
app = Application(backend='uia').connect(process="XXX")
②、通过窗口句柄连接
app = Application().connect(handle=0x00230DB6)
③、使用程序路径绑定
app = Application().connect(path=r"D:\Program Files (x86)\tlxsoft\屏幕录像专家 共享版 V2017\屏录专家.exe")
④、使用标题、类型等匹配
app = Application().connect(title_re="屏幕录像专家.*", class_name="TMainForm")
常用参数表:
可传参数 对应属性名称备注
class_name ClassName
class_name_re 正则匹配window Classname
title Name Window窗口名
title_re 正则匹配窗口名
best_match 模糊匹配类似的title
handle 句柄
framework_id FrameworkId(一般情况下FrameworkId不是唯一的)
process ProcessId,进程id(注意:每次启动后,进程id都会变)
control_id control_id
control_type ControlType()
auto_id AutomationId
3、选择程序窗口
①、根据窗口标题 window = app["QQ"]
②、根据窗口类名选择 window = app.TXGuiFoundation
窗口控件分类 --> 原创 pywinauto的初级入门
4、窗口控件基本属性获取方法
con_list = win.child_window(title=u"联系人", control_type="List")
addresslist = win.child_window(title=u"通讯录", control_type="Button")
*打印控件 print(window.print_control_identifiers())
*获取窗口/控件的坐标 coords = app["QQ"].rectangle()
*对窗口/控件的截图处理 pic = app[title_notepad].capture_as_image()
*对窗口/控件画框 window.draw_outline()
①、获取控件支持的方法:print(dir(a.wrapper_object()))
②、获取控件的子元素:children()
③、获取控件类名:class_name()
④、获取控件类型:wrapper_object()
⑤、以字典的形式返回控件的属性:get_properties()
【以上全部可以用inspect直接查看获取】
5、菜单的相关操作
①、选择菜单项
menu = window['menu']
print(menu.items())#获取菜单的子菜单项
1. 通过下标 m = menu.item_by_index(1)
2. 通过路径 m = menu.item_by_path("文件->新建连接...")
1. 使用menu_select()函数进行选择
dlg_spec = app.window(title='屏幕录像专家 V2017')
dlg_spec.menu_select(r"转换工具->EXE/LXE转成MP4")
2. 使用快捷键进行选择
dlg_spec = app.window(title='屏幕录像专家 V2017')
dlg_spec.type_keys('%TP')
②、菜单项控制
m.click_input()
对于一些特殊符号的快捷键,对应的码表如下: --〉 python自动化工具之pywinauto(一)
6、控件
Basic User Input Modules
pywinauto 控件
鼠标:click、click_input、double_click、drag_mouse_input、move_mouse_input、release_mouse_input、wheel_mouse_input、pywinauto.mouse
位置:rectangle()、client_to_screen(client_point)、from_point(x, y)、top_from_point
对象:parent()、children、descendants()、iter_children()、root()
属性:get_properties()->dist、class_name()、friendly_class_name()、element_info
内容:window_text、texts、、
数量:control_count()、、、、
键盘:type_keys({VK_})
显示:draw_outline()、capture_as_image()
pywinauto.controls.uia_controls
con_list.type_keys("{DOWN}")
page[u'呢称'] = win.Edit2.get_value()
lines = item.children()
key = lines[0].window_text()
7、模拟用户键盘的操作
from pywinauto.keyboard import *
send_keys("^a") #全选
“+”:Shift
“^”:Control
“%”:Alt
8、鼠标用户操作
from pywinauto import mouse
mouse.click(coords=(475,20))#默认单击左键,coords:像素
mouse.scroll(coords=(1919,257),wheel_dist=-3)#wheel_dist:为正向上滚动,为负向下滚动
5. 鼠标点击
a)click() 点击Button控件
b)check_by_click() 通过click()方法勾选checkbox
c)uncheck_by_click() 通过click()方法取消勾选checkbox
d)get_check_state() 返回checkbox的勾选状态(0没勾选,1勾选,2不定)
e)is_checked(勾选返回true,为勾选返回false,不定返回None)
f)check() 勾选checkbox
g)uncheck() 不勾选checkbox
h)invoke() 点击(uia mode)
i)toggle () 勾选checkbox(uia mode)
9、等待机制
window.wait(wait_for='ready',timeout=10,retry_inteval=1)
wait_cpu_usage_lower()
等待该进程的cpu使用率低于某个阈值
参数:
threshold:该进程的cpu占用率低于某个阈值
timeout:超时时间
retry_inteval:重试时间间隔 --> 原创 pywinauto的初级入门
python自动化工具之pywinauto(零)
python自动化工具之pywinauto(一)
python自动化工具之pywinauto(二)
python自动化工具之pywinauto(三)
python自动化工具之pywinauto(四)——批量转换exe视频
pywinauto + python(7)
pywinauto如何获取gridwindow控件的屏幕位置
pywinauto简单介绍
HtmlTestRunner二次封装(TestRunner.py)
pywinauto二次封装(pywinnat.py)
WIN32api总结
SendKeys总结
修改HTMLTestRunner模板
pywinauto二次封装(pywinnat.py)
①②③④⑤⑥