python 自动化模块 - pyautogui
- 引言
- 一、安装测试
- 二、简单使用
- 三、常用函数总结
引言
在画图软件中使用pyautogui
拖动鼠标,画一个螺旋式的正方形 - (源码在下面)
PyAutoGUI允许Python脚本控制鼠标和键盘,以自动化与其他应用程序的交互。API的设计非常简单,适用于Windows、macOS和Linux。功能如下:
-
- 移动鼠标并在其他应用程序的窗口中单击。
-
- 向应用程序发送按键(例如,填写表格)。
-
- 截屏,并给出一个图像(例如,按钮或复选框),然后在屏幕上找到它。
-
- 找到应用程序的窗口,然后移动、调整大小、最大化、最小化或关闭它(当前仅限Windows)。
-
- 显示警报和消息框。
pyautogui
是一个用于进行屏幕操作的Python库。它可以模拟鼠标移动、点击,键盘输入等操作,可以用于自动化任务或者进行简单的UI测试。pyautogui在Windows、macOS和Linux系统上都可以使用,并且支持Python2和Python3。使用pyautogui可以实现一些常见的屏幕操作,例如移动鼠标、点击鼠标、输入文本等。同时,它还可以识别屏幕上的像素颜色、获取屏幕截图等功能。需要注意的是,由于pyautogui是基于屏幕坐标操作的,所以在使用过程中需要确保屏幕分辨率和尺寸的一致性,以免操作错误。并且相比pywinauto,其更简单易上手1。
- 官方文档2:https://pyautogui.readthedocs.io/en/latest/
一、安装测试
-
- 下载安装:
pip install pyautogui
- 下载安装:
-
- 使用
pyautogui.position()
获取鼠标坐标:
- 使用
import pyautogui
import time
print('Press Ctrl-C to quit.')# 备份坐标
_x = 0
_y = 0try:while True:time.sleep(3) # 睡3秒钟x, y = pyautogui.position() # 获取鼠标坐标if x != _x or y != _y:_x = x_y = ypositionStr = 'X: ' + str(x) + ' Y: ' + str(y)print(positionStr, flush=True)
except KeyboardInterrupt:print('\n')
-
- 移动鼠标,执行点击
pyautogui.click(x=100, y=200) # 移动到相应坐标,点击左键
二、简单使用
参考官方文档:https://pyautogui.readthedocs.io/en/latest/index.html#
import pyautoguidistance = 50
while distance > 0:pyautogui.drag(distance, 0, duration=0.5) # move rightdistance -= 5pyautogui.drag(0, distance, duration=0.5) # move downpyautogui.drag(-distance, 0, duration=0.5) # move leftdistance -= 5pyautogui.drag(0, -distance, duration=0.5) # move up
三、常用函数总结
pyautogui.position()
获取鼠标坐标pyautogui.moveTo(100, 200)
移动鼠标,函数加To
是绝对位置,不加为相对位置pyautogui.dragTo(100, 200, button='left')
按下左键,拖动鼠标pyautogui.click()
x,y是坐标;clicks是点击次数;interval为点击间隔时间;button (str格式)可设置为 ‘right’ 默认’left’
pyautogui.press('a')
键盘按下a;pyautogui.keyDown('a')
按住a;pyautogui.keyUp('a')
抬起 等等,可以传的参数就是键盘上的按键:
pyautogui.confirm(text='confirm', title='confirm', buttons=['OK', 'Cancel'])
弹出对话框
pyautogui.screenshot()
屏幕截图,可以选择保存的图片名称与截图区域
https://www.bilibili.com/read/cv22905820/ 用Python实现PC端应用自动化的准备工作(pyautogui\pywinauto) ↩︎
https://pyautogui.readthedocs.io/en/latest/ 官方文档 ↩︎