Pywinauto之Windows UI自动化4

2023-03-08 16:43:10 浏览数 (1)

一、选择程序窗口

1、打印窗口所有控件

dlg.print_control_identifiers()

2、根据窗口标题或类名选择

dlg = app[窗口类名/标题]

dlg = app["窗口类名"]

3、根据窗口类名选择串口

dlg = app.窗口类名

二、窗口的操作方法

1、窗口最大化

dlg.maximize()

2、窗口最小化

dlg.minimize()

3、还原窗口正常大小

dlg.restore()

4、获取窗口显示状态

dlg.get_show_state()

5、关闭窗口

dlg.close()

三、窗口控件的分类

状态栏:StatusBar 静态内容:Static

按钮:Button 复选框:CheckBox

单选框:RadioButton 组框:GroupBox

组合框:ComboBox 对话框(窗口):Dialog

编辑框:Edit 头部内容:Header

列表框:ListBox 列表显示控件:ListView

弹出菜单:PopupMenu 选项卡控件:TabControl

工具栏:Toolbar 工具栏提示:ToolTips

树状视图:Tree View Menu:菜单

MenuItem:菜单项 Pane:窗格

四、控件的相关属性获取

1、获取控件类型:wrapper_object()

print(dlg.wrapper_object()) # 打印窗口的控件类型

print(menu.wrapper_object()) # 打印菜单项的控件类型

print(file.wrapper_object()) # 打印文件的控件类型

2、获取该控件支持的方法:print(dir(a.wrapper_object()))

print(dlg(dlg.wrapper_object())) # 查看控件所支持的方法

3、获取控件的子元素:children

print(dlg.children) # 获取窗口的子元素

print(menu.children) # 获取菜单的子元素

print(file.children) # 获取文件的子元素

4、获取控件类名:class_name

print(dlg.children) # 获取窗口的类名

print(menu.class_name) # 获取菜单的类名

print(file.class_name) # 获取文件的类名

5、以字典形式返回控件的属性:get_properties

print(menu.get_properties) # 获取菜单的属性

6、获取文本内容:texts

print(file.texts()) #获取文本内容

五、截图处理

方法:capture_as_image

#pic = app[].capture_as_image()

pic = menu.capture_as_image()

pic.save("xx.png")

六、菜单控件相关操作

1、获取菜单的子菜单项

print(menu.items())

2、通过下标去选择菜单项

m = menu.item_by_index(0)

print(m)

3、通过路径去选择菜单项

m = menu.item_by_path("文件") 或

m = menu.item_by_path("文件 -> 新建连接...")

print(m)

七、菜单项的操作方法

1、获取所有子选项:items

print(file.items())

2、点击菜单项的方法:click_input()

file.click_input()

八、等待方式

1、Wait方法:

作用:等待窗口不处于某个特定状态参数;

wait_for :等待的状态(状态有以下几种)

exists:表示该窗口是有效的句柄

visible:表示该窗口未隐藏

enabled :表示未禁用窗口-

ready:表示该窗口可见并启用·

active:表示该窗口处于活动状态

timeout :超时时间

retry _interval :重试时间间隔

2、Wait_not方法:

作用:等待窗口不处于某个特定状态参数;

wait_for :等待的状态(状态有以下几种)

exists:表示该窗口是有效的句柄

visible:表示该窗口未隐藏

enabled :表示未禁用窗口-

ready:表示该窗口可见并启用·

active:表示该窗口处于活动状态

timeout :超时时间

retry _interval :重试时间间隔

3、wait_cpu_usage_lower方法等待该进程的cup的使用率低于某个阀值

注意:此方法仅适用于整个应用程序进程,不适用于窗口/元素。

参数:

threshold :该进程cup占用率timeout :超时时间

retry_interval :重试时间间隔

九、timings模块

1、wait_until方法:参数:

Timeout:超时时间

retry_interval重试时间 func执行的函数

value 比较的值

op比较方式函数(默认为相等) args给执行函数传位置参数

kwargs给执行函数传关键字参数

2、在执行许多动作需要在之前,之后和之间如果我们需要暂停。

那么模块timings中有几个方法库帮我们实现这种暂停操作。

通过在对象timings. Timings中设置全局静态变量(等待时间),它可以单独根据您的需要进行调整。

全局计时变量值的设置方法

Timings .defaults() :将全局计时设为默认值

Timings.slow() :将所有时间加倍(使脚本执行速度降低约2倍)

Timings. fast(): #将所有计时除以2 (快2倍)

十、编辑类Edit的控件操作

1、快速输入文本内容

dlg["Edit"].type_keys("学python做自动化测试")

0 人点赞