谈谈PC端自动化测试(一)
pywinauto:同时支持控件操作和图像操作,支持Win32 API和MS UI Automation APIA set of Python modules to automate the Microsoft Windows GUI安装python3环境(python3.5以上)pip环境$ pip install -i https://pypi.tuna.tsinghua.edu.cn/sim
pywinauto:同时支持控件操作和图像操作,支持Win32 API和MS UI Automation API
A set of Python modules to automate the Microsoft Windows GUI
安装
- python3环境(python3.5以上)
- pip环境
$ 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
打开应用程序
from pywinauto.application import Application
# 打开指定的应用程序
# 1. 打开windows自带的应用app = Application(backend='uia').start("notepad.exe")
# 2. 打开任意一个应用程序app = Application(backend='uia').start("exe路径")
连接已经打开的应用程序
- 通过进程号
- 通过窗口句柄
app = Application('uia').connect(process=4444)app = Application('uia').connect(handle=1904040)
选择指定的窗口
# 方式一:app[类名/标题] :推荐使用该方式
# 1.通过窗口类型来选择dlg = app["TNavicatMainForm"]
# 2.通过窗口标题来选择dlg = app["Navicat for MySQL"]
# 方式二:app.类名dlg =app.TNavicatMainForm
dlg.print_control_identifiers()
操作窗
# 窗口最大化dlg.maximize()
# 窗口最小化dlg.minimize()
# 窗口恢复正常大小dlg.restore()
# 查找窗口显示状态,最大化为1,正常为0status = dlg.get_show_state()
# 获取当前窗口的坐标位置rect = dlg.rectangle()print(rect)# (L548,T194,R1768,B1043)
# 关闭窗口dlg.close()
选择控件
控件:窗口上的内容
# 选择控件
# 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
上面是我收集的一些视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们扣扣群【313782132 】,里面有各种软件测试资源和技术讨论。
当然还有面试,面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)
我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,上面也是我整理好的精选面试题。
加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。
资源不错就给个推荐吧~
更多推荐
所有评论(0)