python 第三方库 PyAutoGUI 详解
Last Update:
Word Count:
Read Time:
python 第三方库 PyAutoGUI详解
简介
PyAutoGUI 是一个用于自动化鼠标和键盘操作的Python库。用于编写Python脚本来模拟用户的输入和操作,以自动化重复性任务或进行自动化测试。以下是PyAutoGUI的一些主要功能和用途:
模拟鼠标操作:PyAutoGUI可以模拟鼠标的移动、点击、拖动等操作。可以指定鼠标操作的坐标位置。
模拟键盘操作:可以模拟键盘按键,包括单个按键、组合键和输入文本。
屏幕截图:捕获屏幕上的特定区域的截图,并保存为图像文件。
等待条件:可以等待屏幕上的特定图像或颜色出现,然后执行后续操作。
自定义延迟:可以设置操作的延迟时间,以便模拟人类的操作速度。
自动化测试:可用于创建自动化测试脚本,测试应用程序的用户界面。
跨平台:可以在多个操作系统上运行,包括Windows、macOS和Linux。
具体介绍
PyAutoGUI的安装
1 | |
PyAutoGUI中鼠标控制相关函数的使用
PyAutoGUI中的坐标

PyAutoGUI中的坐标系以屏幕左上角为坐标原点,水平向右为x轴正向,竖直向下为y轴正向。
函数介绍
pyautogui.size()
返回一个元组(x, y),对应值分别为屏幕的宽和高。
pyautogui.position()
返回一个元组(x, y),为当前鼠标指针所在的屏幕坐标。
pyautogui.onScreen(x, y)
返回一个布尔值,如果(x, y)点在屏幕上返回True, 否则返回False。
example 1
1 | |
pyautogui.moveTo(x, y, duration)
将鼠标在duration时间内移动到(x, y)处。
(x, y)为相对于屏幕的绝对坐标,其中一个可设置为None,含义为该轴坐标不变。duration为可选参数,用于设置鼠标移动这一事件发生的时长,默认情况下如果duration参数设置为小于0.1那么这个移动时间就会即时完成。
pyautogui.move(x, y, duration)
pyautogui.moveRel(x, y, duration)
两个函数作用一致,都是将鼠标移动到相对当前位置坐标为(x, y)处,查看源码发现如下代码:

因此两函数完全一致。
(x, y)为相对于鼠标当前位置的目标点坐标, 其中一个可设置为None,含义为该轴坐标不变。duration参数含义与moveTo函数相同。
pyautogui.dragTo(x, y, duration, button)
模拟鼠标按键button按下后移动鼠标,在duration时间内移动到(x, y)点。
(x, y)为对于屏幕的绝对坐标,其中一个可设置为None,含义为该轴坐标不变。duration参数含义与moveTo函数相同。button参数为可选值,可以为'left'、'middle'或'right',含义分别为鼠标左中右键,默认为'left'。
pyautogui.drag(x, y, duration, button)
pyautogui.dragRel(x, y, duration, button)
模拟鼠标按键button按下后移动鼠标,在duration时间内移动到相对当前位置坐标为(x, y)点。
同样在源码中找到
因此两函数也完全一致。
(x, y)为对于屏幕的绝对坐标,其中一个可设置为None,含义为该轴坐标不变。duration参数含义与moveTo函数相同。button参数含义与dragTo函数相同。
pyautogui.click(button, x, y, clicks, interval)
在(x, y)位置处用button键单击clicks次,单击之间的间隔为interval秒。
- 所有参数为可选值,默认为鼠标左键在当前位置处单击一次。
button与drag函数含义相同(x, y)为鼠标点击位置的绝对坐标。clicks为点击次数。interval为多次点击之间的时间间隔,单位为秒。
类似函数有pyautogui.doubleClick()、pyautogui.tripleClick()等等。
pyautogui.mouseDown(x, y, button)
pyautogui.mouseUp(x, y, button)
鼠标按下和鼠标松开函数,参数中(x, y)为绝对坐标,button与上述函数含义相同。
pyautogui.scroll(clicks)
鼠标滚轮滚动clicks像素,clicks为正时页面向顶部滚动,为负时页面向底部滚动。
PyAutoGUI中键盘控制相关函数的使用
函数介绍
pyautogui.write(content, interval)
模拟键盘输入的函数,其中content为输入内容,只能为英文,interval为输入时每个键入内容之间的间隔时间,单位为秒,为可选参数。
pyautogui.press(key)
pyautogui.keyDown(key)
pyautogui.keyUp(key)
以上三个函数分别为敲击键盘按键,按下键盘按键以及释放键盘按键,
在此处看其中参数key的可选值。
如果要连续敲击多个键可以将这些按键以列表形式传入press()函数如下:
1 | |
同样可以指定interval参数来指定按键之间的时间间隔。
pyautogui.hold(key)
按下key键并不松开,其用法如下:
1 | |
即在按下”shift”键的同时按方向左键三次。
该代码与下面的代码等效:
1 | |
hotkey(keys)
该函数接收的参数为一个键值列表,功能为以从前到后的顺序依次按下列表中的键,再以从后往前的顺序依次释放。
示例如下:
1 | |
下面的代码与上面的等效:
1 | |
同样可以指定interval参数来指定每一次按键的时间间隔。
PyAutoGUI中消息对话框相关函数使用
函数介绍
pyautogui.alert(text='', title='', button='OK')
该函数会弹出一个对话框,文本内容为text,标题为title,只有一个按钮,默认文本为"OK",返回单击按钮的文本。
example 2
1 | |
结果:
pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel'])
显示一个消息框,其中包含“确定”和“取消”按钮。按钮的数量和文本可以自定义。返回单击的按钮的文本。
example 3
1 | |
结果:
pyautogui.prompt(text='', title='', default='')
显示一个包含文本输入以及“确定”和“取消”按钮的消息框。点击确定则返回输入的文本,如果单击“取消”,则返回None。
example 4
1 | |
结果:
pyautogui.password(text='', title='', default='')
显示一个包含文本输入以及“确定”和“取消”按钮的消息框。键入的字符显示为 *.若点击确定则返回输入的文本,如果单击“取消”,则返回None。
example 5
1 | |
结果:
PyAutoGUI中截图相关函数使用
函数介绍
pyautogui.screenshot(filename=str, region)
该函数会截取屏幕并返回一个PIL图片对象,默认情况下会截取整个屏幕,可以指定region参数来截取屏幕上的指定位置,region为一个四元组(x, y, w, h),含义为你想截取的屏幕区域左上角的坐标以及它的宽和高。
当你传入一个字符串作为文件名时,它将会保存该截图为你指定的文件名。
pyautogui.locateOnScreen(filename, grayscale=False)
该函数用于在屏幕上匹配你传入的图片文件,若屏幕上有区域能与传入的图片匹配,会返回一个四元组(x, y, w, h),为匹配区域的坐标信息,否则会引发ImageNotFoundException。
grayscale为灰度匹配,若设为True匹配速度会有提升,但精度会下降。
pyautogui.locateCenterOnScreen(filename, grayscale=False)
作用与pyautogui.locateOnScreen(filename)相同,不过返回值为匹配区域的中心坐标。