Python自动化脚本指南:PyAutoGUI安装与核心功能详解
本文详细介绍Python自动化库PyAutoGUI的安装方法及核心用法。涵盖屏幕坐标系统、鼠标移动点击拖动、键盘按键模拟、截图定位及弹窗交互等关键功能,提供具体代码示例,帮助开发者快速掌握桌面自动化脚本编写技巧。
前言
本文整理自对Python中PyAutoGUI库的学习实践,该库是编写桌面自动化脚本的重要工具,旨在分享相关经验以协助读者掌握其使用方法。
注意:在初步测试中发现,PyAutoGUI对Google Chrome浏览器的click点击操作可能存在失效情况,其他浏览器或应用暂未发现此问题。
PyAutoGUI的安装
可通过命令行工具cmd执行pip install pyautogui命令来安装该库。
鼠标控制基础
鼠标控制基于屏幕像素坐标系统。以1920×1080分辨率为例,屏幕左上角为原点(0,0),水平向右为x轴(共1920像素),垂直向下为y轴(共1080像素)。整个屏幕可视作仅包含第一象限的坐标系。
获取屏幕分辨率
具体示例如下:
from pyautogui import size
x,y=size()
print(x,y)

获取鼠标当前坐标
from pyautogui import position
x,y=position()
print(x,y)

鼠标移动操作
moveTo函数用于将鼠标指针移动至屏幕指定绝对坐标位置。
已知左上角坐标为(0,0),右下角坐标为(1920,1080)。具体移动示例如下:
from pyautogui import moveTo
moveTo(1684,1059,duration=3)#1684和1059是要移动到的位置,duration表示执行该移动的时间,单位是秒
moveRel函数用于基于当前鼠标位置进行相对移动。
from pyautogui import moveTo,moveRel
moveRel(100,200,duration=2)
#从当前鼠标所在的位置移动到向右100,向下200的位置,过程时间设定为2秒
鼠标点击操作
click函数用于执行鼠标单击操作。
from pyautogui import click
#click中指定了坐标,也是可以设置从执行到点击这个位置的duration时间,以及左边,中间还是右键
click(100,200,button='left',duration=2)
click(100,200,button='middle')
click(100,200,button='right')
doubleClick函数用于执行鼠标双击操作。
from pyautogui import doubleClick
#参数与单击相同,只不过现在是双击鼠标
doubleClick(100,200,button='left',duration=2)
doubleClick(100,200,button='middle')
doubleClick(100,200,button='right')
mouseDown与mouseUp函数分别用于模拟鼠标按键按下和释放动作。
from pyautogui import mouseDown,mouseUp
mouseDown() # 鼠标按下
mouseUp() # 鼠标释放
鼠标拖动操作
dragTo函数用于将鼠标拖动至指定绝对坐标位置。
dragRel函数用于基于当前位置进行相对拖动操作。
鼠标拖动与移动功能类似,但在实际测试中发现二者在窗口拖动场景下存在差异。
from pyautogui import moveTo,mouseDown,mouseUp
mouseDown(button='left')
moveTo(1000,500)
mouseUp(button='left')
from pyautogui import dragTo,mouseDown,mouseUp
mouseDown(button='left')
dragTo(1000,500)
mouseUp(button='left')
测试表明,使用moveTo结合鼠标按下与释放可实现窗口拖动,而直接使用dragTo函数可能无法实现相同效果。
鼠标滚动操作
from pyautogui import scroll
scroll(300)#传入一个整数,正数表示向上滑动滚轮
scroll(-300)#向下滑动滚轮
屏幕截图与定位
screenshot函数用于截取全屏图像。
截取的图片默认保存在脚本文件所在的同一目录下。
from pyautogui import screenshot
screenshot().save('屏幕截图.png')#jpg格式也支持,其他格式请尝试
crop函数可用于截取任意指定区域的图像,例如crop((x,y,width,height))。
locateOnScreen函数用于在屏幕上查找与指定截图匹配的位置。
该函数在屏幕上搜索与保存的截图图像完全匹配的区域坐标。
from pyautogui import locateOnScreen
print(locateOnScreen('屏幕截图.png'))
键盘输入控制
keyDown与keyUp函数分别用于模拟键盘按键按下和释放。
通过组合keyDown和keyUp可实现多键同时按下,例如Ctrl+V粘贴。为实现多键组合,还可使用hotkey('ctrl','c')函数,该函数接受多个参数,按传入顺序依次按下按键,再按相反顺序依次释放。
from pyautogui import keyDown,keyUp
keyDown('space') # 按下空格键
keyUp('space') # 释放空格键
keyDown('ctrl')
keyDown('c')
keyUp('c')
keyUp('ctrl')
hotkey('ctrl','c')
press函数用于按键后立即释放。
press可视为按下与释放的组合操作,例如发送消息后按Enter键,按下即释放,因此press应用较为广泛。
字母大小写不影响按键识别,例如Enter键可编写为press('enter')或press('ENter')。
部分键位有左右之分,如Shift键,可通过添加left或right后缀指定,例如press('shiftleft')。
需特别说明,Enter键公认代表换行,可用\n代替,即press('enter')等价于press('\n');Tab键可用\t代替。
上下左右方向键分别对应up、down、left、right。
typewrite函数用于连续输入文本。
typewrite函数能够识别并处理输入内容的大小写。
from pyautogui import typewrite
typewrite('ceshi',0.5)
#第一个参数是要输入的内容,第二个参数是每次按键的间隔时间
typewrite(['c','e','s','h','i'])
#也可以传入一个单个字符串的列表
typewrite(['S','u','n'])#typewrite('Sun',0.5)
#将会输入大写的S
提示信息与交互
提示框
from pyautogui import alert
print(alert(text='一个测试',title='test'))
#点击确定后将返回OK

选择框
from pyautogui import confirm
print(confirm('请选择性别',buttons=['男','女']))
#将输出你的点击项

密码输入框
from pyautogui import password
print(password('请输入你的密码'))
#将输出刚才输入的密码

普通内容输入框
from pyautogui import prompt
print(prompt('请输入你的账号'))
#将返回刚才输入的内容

总结
本文介绍了Python脚本库PyAutoGUI的安装与使用方法,更多相关PyAutoGUI安装使用内容可搜索本站历史文章或继续浏览后续文章,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









