当前位置:   article > 正文

PC端自动化测试(二)

pywinauto from pywinauto.timings import wait_until *args, **kwargs 使用方法

测试对象:

  • 窗口

  • 菜单

  • 文件

  1. from pywinauto.application import Application
  2. # 启动Navicat
  3. app = Application("uia").start(r"D:\Navicat for MySQL\navicat.exe")
  4. # 选择窗口
  5. dlg = app["Navicat for MySQL"]
  6. # 选择菜单
  7. menu = dlg["menu"]
  8. # 选择菜单项:文件
  9. file = menu.child_window(title="文件")

查看控件类型

wrapper_object()

  1. dlg.wrapper_object() # Dialog
  2. menu.wrapper_object() # Menu
  3. file.wrapper_object() # MenuItem

查看对象所支持的方法

dir()

dir(dlg.wrapper_object())

控件的文本内容获取

.texts()

file.texts() # ['文件']

获取子元素

.children()

  1. dlg.children()
  2. menu.children()
  3. file.children()

获取控件的类名

.class_name()

menu.class_name()

获取控件的属性

menu.get_properties()

  1. {
  2. 'class_name': 'TActionMainMenuBar',
  3. 'friendly_class_name': 'Menu',
  4. 'texts': [''],
  5. 'control_id': 6555556,
  6. 'rectangle': <RECT L780, T151, R1980, B185>,
  7. 'is_visible': True,
  8. 'is_enabled': True,
  9. 'control_count': 6,
  10. 'is_keyboard_focusable': True,
  11. 'has_keyboard_focus': True,
  12. 'automation_id': '6555556'
  13. }

截图

截图窗口

  1. pic = dlg.capture_as_image()
  2. pic.save("dlg.png")

截图菜单

  1. pic1 = menu.capture_as_image()
  2. pic1.save("menu.png")

截图菜单项

  1. pic3 = file.capture_as_image()
  2. pic3.save("file.png")

菜单操作

  • 获取菜单的子菜单项

menu.items()
  • 通过下标去选择菜单项

menu.item_by_index(1)
  • 通过路径去选择菜单项

menu.item_by_path('文件->新建连接...')

菜单项的方法

  • 获取菜单项

file.items()
  • 点击菜单项

file.click_input()
  • 点击新建连接

需要先点击文件出现了「新建连接...」后再点击

  1. file.click_input()
  2. menu.item_by_path("文件->新建连接...").click_input()

等待

  • wait

  • wait_not

参数
  1. wait_for:等待的状态

  • exists 表示该窗口是有效句柄

  • visible 表示该窗口未隐藏

  • enabled 表示未禁用窗口

  • ready 表示该窗口可见并启用

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

  1. timeout:超时时间

  2. retry_interval:重试时间间隔

例子

  1. # 等待窗口处于可见状态
  2. new_dlg.wait(wait_for="ready",timeout=10,retry_interval=1)
  3. print("等待通过,当前新建连接的窗口处于可见状态")
  4. # 等待窗口不处于可见状态
  5. new_dlg.wait_not(wait_for_not="ready",timeout=10,retry_interval=1)
  6. print("等待通过,当前新建连接的窗口不处于可见状态")

等待CPU阀值

wait_cpu_usage_lower

参数
  1. threshold 该进程CPU占用率

  2. timeout:超时时间

  3. retry_interval:重试时间间隔

  1. app.wait_cpu_usage_lower(threshold=20,timeout=5,usage_interval=1)
  2. print("等待通过,当前该进程cup占用率低于%20")

timings模块

wait_until方法:

  • Timeout 超时时间

  • retry_interval 重试时间

  • func 执行的函数

  • value 比较的值

  • Op 比较函数(默认为相等)

  • args 给执行函数传位置参数

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

  1. from pywinauto.timings import wait_until,Timings
  2. # 等待work返回的结果为5,继续往下执行
  3. wait_until(10, 1, work, 15)
  • 讲全局计时设为默认

Timings.Defaults()
  • 时间延长,脚本执行速度降低为1/2(慢2倍)

Timings.slow()
  • 时间间断,所有计时器/2(快两倍)

Timings.fast()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/121319?site
推荐阅读
相关标签
  

闽ICP备14008679号