
“
每天一个测试技术
只需几分钟
川石信息 带你学点更好的


川石信息|腾讯课堂
免费试学 | 自动化测试
图形用户界面(GUI)是为用户交互提供灵活性的界面,很多小伙伴都希望把自己的Python小程序都加上一个可视化界面。即美观,又有交互性。常见的PythonGUI必备自动化测试工具:
pywinauto
pywinauto是一组用于自动化Microsoft Windows GUI的python模块。最简单的是,它允许您将鼠标和键盘操作发送到窗口对话框和控件。
下载: https://pypi.org/project/pywinauto/
安装:pip install pywinauto
示例:
from pywinauto.application import Applicationapp = Application(backend="uia").start('notepad.exe')# 描述Notepad.exe进程内的窗口dlg_spec = app.UntitledNotepad# 等到窗户真的开着actionable_dlg = dlg_spec.wait('visible')from subprocess import Popenfrom pywinauto import DesktopPopen('calc.exe', shell=True)dlg = Desktop(backend="uia").Calculatordlg.wait('visible')
左右拉动查看完整命令
Pywin32
Pywin32提供了很多访问windows的API。较重要的三个模块就是win32api、win32gui和win32con
下载:https://pypi.org/project/pywin32/223/
安装:pip install pywin32
示例:
import timeimport win32gui,win32conimport keyboardEmulation as kedef get_windows(windowsname,filename):# 获取窗口句柄hwnd = win32gui.FindWindow(None,windowsname)# 将窗口放在前台,并激活该窗口win32gui.SetForegroundWindow(hwnd)# 输入helloworldscancodes = [0x23, 0x12, 0x26, 0x26, 0x18, 0x11, 0x18, 0x13, 0x26, 0x20, 0x2a]for code in scancodes:ke.key_press(code)# 保存ke.key_down(0x1d)ke.key_down(0x1f)ke.key_up(0x1d)ke.key_up(0x1f)# 关闭窗口time.sleep(1);win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)get_windows("新建文本文档 (2).txt - 记事本","截图.png")
左右拉动查看完整命令
pyautogui
PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux)
下载:https://pyautogui.readthedocs.io/en/latest/
安装:pip3 install pyautogui
示例:
#导入模块from PIL import ImageGrabimport pyautogui as auto#定义类class Screenshoot:def __init__(self):#self.bbox = bbox#self.name = name#self.im = ImageGrab.grab(self.bbox)#定位xy坐标,confidence为相似度判断,最好不要使用1.0完全相似,比较容易不识别self.position_1 = auto.locateCenterOnScreen('1.png', confidence=0.9)self.position_2 = auto.locateCenterOnScreen('2.png', confidence=0.9)self.position_3 = auto.locateCenterOnScreen('+.png', confidence=0.9)self.position_4 = auto.locateCenterOnScreen('=.png', confidence=0.9)passdef fullshoot(self):#全屏截图#self.im.save('01.png')passdef partialshoot(self):#局部精确截图#self.im.save(self.name+'.png')passdef position_show(self):#打印各坐标print(self.position_1)print(self.position_2)print(self.position_3)print(self.position_4)def caculate(self):#依次点击按钮auto.click(self.position_1)auto.click(self.position_3)auto.click(self.position_2)auto.click(self.position_4)#对象初始化shoot1 = Screenshoot()#对象函数执行shoot1.position_show()shoot1.caculate()#shoot1.partialshoot()#shoot1.fullshoot()
左右拉动查看完整命令
川石信息重磅推出
“高级性能测试V9.0全新升级”
(戳我了解升级详情)
带你从0到1完成企业高阶版测试
打破性能测试入门僵局

课程详情联系下方课程老师

今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!
温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!
往期回顾 






