Python三方库PyAutoGUI的使用方法
通过ssh远程执行脚本的时候,需要加上:
import os
os.environ["DISPLAY"] = ":0" # 注意这行代码需要写在"import pyautogui"之前
import pyautogui
1.安装:
sudo pip3 install python3-xlib
sudo apt-get install scrot
sudo apt-get install python3-tk
sudo apt-get install python3-dev
sudo pip3 install pyautogui
2.暂停和自动放故障
pyautogui.PAUSE = 1,每个执行动作之后,都会等待1s
pyautogui.FAILSAFE = True,启动自动防故障功能(鼠标移到屏幕的做上角,将导致pyautogui产生pyautogui.FailSafeException异常)在自动化测试项目中,为了不自动跳出用例脚本,通常设置未False
3.鼠标操作
3.1 控制鼠标移动
pyautogui.size() 返回两个整数元素,包含屏幕的宽和高的像素数。
pyautogui.moveTo(x, y, duration=0.25)移动到某个坐标,duration表示移动到目的位置所需的秒数。
pyautogui.moveRel(x, y, duration=0.25)相对于当前位置移动鼠标。x,y可以为负数
3.2 获取鼠标位置
pyautigui.positon()返回鼠标的位置
3.3 点击鼠标
pyautogui.click() 默认左键在当前位置点击
pyautogui.click(x, y, button='left')在指定位置左键点击,button可以为'left','middle','right'
pyautogui.mouseDown()按下不放
pyautogui.mouseUp()释放鼠标按键
pyautogui.doubleClick()双击左键
pyautogui.rightClick()双击右键
pyautogui.middleClick()双击中键
3.4 拖动鼠标
pyautogui.dragTo()鼠标拖动到一个位置
pyautogui.dragRel()相对当前拖到一个距离的位置
3.5 滚动鼠标
pyautogui.scroll(number) 上下滚动的单位
3.处理屏幕
需安装scrot,才能在pyautogui中使用屏幕快照功能。sudo apt-get install scrot
3.1获取屏幕快照
image = pyautogui.screenshot() ,image是一个屏幕快照的对象
image.getpixel(x, y) 返回图像中坐标处的像素对象,返回值是一个RGB元组,包含3个整数。
3.2分析屏幕快照
pyauto.pixelMatchesColor(50, 200,(130,135,144)) >>True
4.图像识别
实际使用下来有点问题,如果图标比较小的情况,无法定位,图像识别建议使用opencv模板匹配
pyautogui.locateOnScreen("xxx.png") >>(643, 745, 70, 29)
返回4个整数的元素,分别是屏幕上首次发现该图像时左边的x坐标、顶边的y坐标、宽度以及高度。
如果该图像在屏幕上能够找到多出,locateAllOnScreen()函数将返回一个对象,将它传给list(),返回一个4整数元组的列表。
list(pyautogui.locateAllOnScreen("xxx.png"))
pyautogui.center((643, 745, 70, 29)) >>返回图像区域的中心坐标
5.键盘操作
pyautogui.typewrite("message") 输入内容
pyautogui.typewrite(['ctrl','alt','a','left'])从左到右,先后顺序按键盘的按键
pyautogui.keyDown('shift')按住不放
pyautogui.keyUp()键盘松开
pyautogui.press('ctrl')单个按键
pyautogui.hotkey('ctrl','c')组合按键(同时按)
本文来自博客园,作者:mikigo,转载请注明原文链接:https://www.cnblogs.com/mikigo/p/13182619.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异