前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PC端自动化测试(一)

PC端自动化测试(一)

作者头像
zx钟
发布2020-03-26 10:56:31
3.8K0
发布2020-03-26 10:56:31
举报
文章被收录于专栏:测试游记测试游记

PC端自动化测试(一)

pywinauto:同时支持控件操作和图像操作,支持Win32 API和MS UI Automation API A set of Python modules to automate the Microsoft Windows GUI

安装

  • python3环境(python3.5以上)
  • pip环境
代码语言:javascript
复制
$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywinauto

应用程序的可访问技术

支持控件的访问技术

Win32 API(backend=“win32”) 默认的backend

MFC,VB6,VCL简单的WinForms控件和大多数旧的应用程序

MS UI Automation API(backend=“uia”)

WinForms,WPF,Store apps,Qt5,浏览器

进程数量

单进程

Application作用范围是一个进程

跨进程

Desktop作用范围可以跨进程

GUI对象检查工具

Inspect.exe

spy++.exe

ViewWizard

打开应用程序

代码语言:javascript
复制
from pywinauto.application import Application
# 打开指定的应用程序
# 1. 打开windows自带的应用app = Application(backend='uia').start("notepad.exe")
# 2. 打开任意一个应用程序app = Application(backend='uia').start("exe路径")

连接已经打开的应用程序

  • 通过进程号
  • 通过窗口句柄
代码语言:javascript
复制
app = Application('uia').connect(process=4444)app = Application('uia').connect(handle=1904040)

选择指定的窗口

代码语言:javascript
复制
# 方式一:app[类名/标题] :推荐使用该方式
# 1.通过窗口类型来选择dlg = app["TNavicatMainForm"]
# 2.通过窗口标题来选择dlg = app["Navicat for MySQL"]

# 方式二:app.类名dlg =app.TNavicatMainForm
dlg.print_control_identifiers()

操作窗

代码语言:javascript
复制
# 窗口最大化dlg.maximize()
# 窗口最小化dlg.minimize()
# 窗口恢复正常大小dlg.restore()
# 查找窗口显示状态,最大化为1,正常为0status = dlg.get_show_state()
# 获取当前窗口的坐标位置rect = dlg.rectangle()print(rect)# (L548,T194,R1768,B1043)
# 关闭窗口dlg.close()

选择控件

控件:窗口上的内容

代码语言:javascript
复制
# 选择控件
# menu = dlg.Menumenu = dlg["Menu"]print(menu.print_control_identifiers()) # 查看Menu上的控件

file = menu.child_window(title="文件", control_type="MenuItem")file.print_control_identifiers()

控件的分类

  • 状态栏 StatusBar
  • 按钮 Button
  • 单选框 RadioButton
  • 组合框 ComboBox
  • 编辑栏 Edit
  • 列表框 ListBox
  • 弹出菜单 PopupMenu
  • 工具栏 Toolbar
  • 树状视图 Tree View
  • 菜单项 MenuItem
  • 静态内容 Static
  • 复选框 CheckBox
  • 组框 GroupBox
  • 对话框 Dialog
  • 头部内容 Header
  • 列表显示控件 ListView
  • 选项卡控件 TabControl
  • 工具提示 ToolTips
  • 菜单 Menu
  • 窗格 Pane
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PC端自动化测试(一)
    • 安装
      • 应用程序的可访问技术
        • 支持控件的访问技术
        • 进程数量
      • GUI对象检查工具
        • Inspect.exe
        • spy++.exe
        • ViewWizard
      • 打开应用程序
        • 连接已经打开的应用程序
          • 选择指定的窗口
            • 操作窗
              • 选择控件
                • 控件的分类
                相关产品与服务
                云数据库 MySQL
                腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档