作者:憶逍遥
链接:
https://zhuanlan.zhihu.com/p/1886208522875819057
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
PyAutoGUI,你就可以让Python帮你"搬砖",解放双手,干点儿更有意思的事情!
PyAutoGUI是一个Python库,能够让Python控制鼠标和键盘,实现GUI自动化。它可以:
总之,PyAutoGUI可以模拟人类在电脑上的各种操作,让你的Python程序成为一个"电脑操作员"。
安装超简单,只需一行命令:
pip install pyautogui
安装完成后,我们来测试一下是否安装成功:
import pyautogui
print(pyautogui.position()) # 显示当前鼠标位置
运行后,你会看到当前鼠标指针的坐标位置,说明安装成功!
在控制鼠标之前,我们先了解一下屏幕大小:
import pyautogui
# 获取屏幕的宽度和高度
screen_width, screen_height = pyautogui.size()
print(f"屏幕宽度: {screen_width}, 屏幕高度: {screen_height}")
我们可以将鼠标移动到屏幕的特定位置:
import pyautogui
import time
# 移动鼠标到坐标(100, 100)
pyautogui.moveTo(100, 100, duration=1) # duration是移动所需时间(秒)
# 从当前位置相对移动
pyautogui.move(100, 0, duration=1) # 向右移动100像素
点击操作也很简单:
import pyautogui
import time
# 先移动再点击
pyautogui.moveTo(100, 100, duration=1)
pyautogui.click() # 在当前位置左键单击
# 也可以直接在指定位置点击
pyautogui.click(x=200, y=200) # 在(200, 200)处左键单击
# 右键点击
pyautogui.rightClick(x=300, y=300)
# 双击
pyautogui.doubleClick(x=400, y=400)
有时我们需要拖动一些东西:
import pyautogui
import time
# 从(100, 100)拖拽到(300, 300)
pyautogui.dragTo(300, 300, duration=1, button='left')
# 从当前位置相对拖拽
pyautogui.drag(100, 0, duration=1, button='left') # 向右拖拽100像素
import pyautogui
import time
# 向上滚动10个单位
pyautogui.scroll(10)
# 向下滚动10个单位
pyautogui.scroll(-10)
PyAutoGUI不仅能控制鼠标,还能模拟键盘输入:
import pyautogui
import time
# 点击一个文本框
pyautogui.click(x=100, y=100)
time.sleep(0.5) # 等待点击生效
# 输入文字
pyautogui.write('Hello, PyAutoGUI!')
# 可以控制输入速度
pyautogui.write('这是慢速输入', interval=0.2) # 每个字符间隔0.2秒
对于Shift、Ctrl、Alt等特殊按键,可以这样使用:
import pyautogui
import time
# 按下并释放一个键
pyautogui.press('enter')
# 组合键
pyautogui.hotkey('ctrl', 'c') # 复制
pyautogui.hotkey('ctrl', 'v') # 粘贴
# 按下不释放
pyautogui.keyDown('shift')
pyautogui.press('4') # 输入$
pyautogui.keyUp('shift')
PyAutoGUI支持的特殊按键名称包括:
PyAutoGUI的高级功能是可以截图和查找屏幕上的图像位置:
import pyautogui
# 对整个屏幕进行截图
screenshot = pyautogui.screenshot()
screenshot.save('我的屏幕截图.png')
# 对指定区域截图
region_screenshot = pyautogui.screenshot(region=(0, 0, 300, 400)) # 左上角300x400的区域
region_screenshot.save('区域截图.png')
这个功能非常有用,可以找到屏幕上特定图像的位置:
import pyautogui
# 查找屏幕上的图像位置
try:
position = pyautogui.locateOnScreen('目标图片.png')
print(f"找到图片,位置: {position}")
# 获取图像的中心点
center = pyautogui.center(position)
print(f"图片中心点: {center}")
# 点击图像中心
pyautogui.click(center)
except:
print("未找到指定图片")
图像定位在自动化测试中特别有用,比如自动点击某个按钮、识别特定的界面元素等。
PyAutoGUI有一个安全机制,当你把鼠标快速移动到屏幕的左上角时,程序会暂停(引发异常)。这个功能是为了防止程序失控,让你有机会终止程序。
如果你不需要这个功能,可以关闭它:
import pyautogui
# 关闭故障保护
pyautogui.FAILSAFE = False
但建议保留这个功能,以防万一。
自动化操作最好添加适当的暂停,让程序有时间反应:
import pyautogui
import time
# 全局暂停设置
pyautogui.PAUSE = 0.5 # 每次操作后暂停0.5秒
# 或者使用time.sleep
pyautogui.click()
time.sleep(1) # 等待1秒
pyautogui.press('enter')
在编写脚本时,我们经常需要知道要点击的位置坐标,这个小工具很有用:
import pyautogui
import time
print("请将鼠标移到目标位置,5秒后记录坐标")
for i in range(5, 0, -1):
print(i)
time.sleep(1)
x, y = pyautogui.position()
print(f"当前鼠标位置:x={x}, y={y}")
PyAutoGUI还提供了简单的消息框功能:
import pyautogui
# 显示一个警告框
pyautogui.alert(text='操作已完成', title='提示', button='OK')
# 确认框
response = pyautogui.confirm(text='是否继续?', title='确认', buttons=['是', '否', '取消'])
print(f"用户选择了:{response}")
# 输入框
name = pyautogui.prompt(text='请输入你的名字', title='输入', default='')
print(f"你好,{name}")
# 密码输入框
password = pyautogui.password(text='请输入密码', title='密码', default='', mask='*')
PyAutoGUI是一个功能强大的Python自动化库,可以帮助你:
是不是感觉学会了这个,工作效率能提高一大截?
更新时间:2025-05-01
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-=date("Y",time());?> All Rights Reserved. Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号