一、前言
在使用 Selenium 进行自动化测试时,鼠标事件可以用 ActionChains 类,键盘事件可以用 Keys 类。本篇将介绍一款自动化工具-PyAutoGUI,除了可以满足鼠标、键盘事件操作外,还可以进行消息弹窗、截屏等操作。
二、简介
PyAutoGUI 是一个纯 Python 的 GUI 自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,macOS,Linux),并在 Python 2 和 3 上运行。
PyAutoGUI 可以模拟鼠标的移动、点击、拖拽,键盘按键输入、按住操作,以及鼠标+键盘的热键同时按住等操作,可以说手能动的都可以。
PyAutoGUI 有几个特点:
1、移动鼠标并单击其他应用程序的窗口。
2、向应用程序发送点击输入(例如,填写表格)。
3、截取屏幕截图,并给出一个图像(例如,一个按钮或复选框),然后在屏幕上找到它。
4、找到应用程序的窗口,然后移动、调整大小、最大化、最小化或关闭它(目前仅限 Windows)。
5、显示警报和消息框。
Github地址:
https://github.com/asweigart/pyautogui
三、安装
1、Windows 环境下
PyAutoGUI 没有任何依赖,因为它用 Python 的 ctypes 模块,所以不需要 pywin32。
pip3 install pyautogui
2、macOS 环境下
PyAutoGUI 需要 PyObjC 运行 AppKit 和 Quartz 模块。
sudo pip3 install pyobjc-core
sudo pip3 install pyobjc
sudo pip3 install pyautogui
3、Linux 环境下
PyAutoGUI 需要 python-xlib(Python 2)、python3-Xlib(Python 3)
sudo pip3 install python3-xlib
sudo apt-get scrot
sudo apt-get install python-tk
sudo apt-get install python3-dev
sudo pip3 install pyautogui
四、常用函数
position():返回整数元组 (x, y),分别表示鼠标光标所在位置的 XY 轴坐标。
size():返回显示器的尺寸整数元组 (x, y)。
onScreen():要检查 XY 坐标是否在屏幕上,需要用此函数来检验,如果在屏幕上返回 True,否则返回 False。
1、获取当前鼠标的坐标
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:AllTests软件测试
import pyautogui
print(pyautogui.position())
运行结果:
2、获取当前屏幕的分辨率(宽度和高度)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyautogui
print(pyautogui.size())
运行结果:
3、判断坐标是否在屏幕上
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyautogui
x, y = 500, 600
print(pyautogui.onScreen(x, y))
运行