PyAutoGUI基础

pyautogui是一个Python库,可以模拟用户在屏幕上的鼠标和键盘操作,可以自动化鼠标和键盘输入,用于各种自动化任务。

故障保护

作为一个安全功能,当调用PyAutoGUI函数时,我们不小心移动鼠标脱离了程序预定的轨迹,此时程序不会自动跳出,还会继续运行,我们可以将鼠标移到屏幕四个角落的任何一个便可跳出程序。将鼠标位于四个角落将会引发pyautogui.FailSafeException,调用每个pyautogui函数会有十分之一秒的延迟,以便用户有时间将鼠标猛击到角落以触发故障保护。

一般有两个方法可以引发故障保护:

  • 鼠标移动到屏幕的四个角任选一个
  • ctrl + alt + del

一、pyautogui模块的主要应用领域

1.自动化测试

用来自动化测试GUI应用程序,通过控制鼠标和键盘来模拟用户交互,自动进行点击、输入、滚动等操作,然后验证程序的响应是否正确。

2. 自动化重复操作

可以自动化执行重复性的桌面任务,比如复制粘贴,批量同操作处理文件。

3.游戏辅助

可以用来编写游戏辅助脚本。

4.桌面自动化

可以结合其他模块开发夸平台的桌面自动化小工具。

5. UI控制

可以用来驱动和控制各种gui应用程序的界面进行自动化操作。

6.进程控制

通过pyautogui提供的热键和键盘控制,可以用代码打开或切换不同的程序,实现对整个系统的自动化控制。

7.数据输入

当遇到大规模的数据的输入工作,便可以用pyautogu实现自动化输入。比如填写调查问卷。

二、基本用法

#获取屏幕尺寸:
x=pyautogui.size()
#获取当前鼠标位置:
loc=pyautogui.position()
#检查制定坐标是否在屏幕上,返回值为bool值
pyautogui.onScreen(x,y)  #x,y是确定的值,如果给定的坐标点在边缘上,则返回False
#设置暂停时间,每调用pyautogui执行一个动作便停留1秒
pyautogui.PAUSE=1

#鼠标控制
#1.绝对移动,移动到给定的坐标点(x,y)是已知的,duration是设置鼠标在多少秒内移动到给定的位置
pyautogui.moveTo(x,y,duration=4)
#2.相对移动,没有明确的坐标,xofffset和yofffset分别表示相对于x,y的偏移量
pyautogui.moveRel(xofffset=-300,yoffset=-300,duration=4)

#鼠标拖拽(移动+点击)
#1.绝对拖拽
pyautogui.dragTo(x=300,y=300,duration=4)
#2.相对拖拽
pyautogui.drag(xofffset=-300,yoffset=-300,duration=4)

#鼠标点击
#1.鼠标单击
pyautogui.click(x,y,clicks,interval,button,duration)
"""
主要参数:
x,y表示,x、y轴的坐标,二者需要同时指定,不能只指定某一个
clicks:鼠标的点击次数,默认为1
interval:int或浮点数,表示每次单击之间需要等待多少秒,默认值为0
button:可选left,middle,right,primary(左键)或secondary(右键),默认值primary
"""
#2.鼠标双击左键
pyautogui.doubleClick(10,10)
#3.双击右键
pyautogui.rightCLick(10,10)
#4.鼠标按下
pyautogui.mouseDown()
#5.鼠标释放
pyautogui.mouseUp()

#鼠标滚动
pyautogui.scroll(-100) #向下滚动100
pyautogui.hcroll(-100) #向右滚动100

#键盘控制(pyautogui不支持输入框自动聚焦,需要在输入前点击输入框的位置)
pyautogui.write('hello world',interval=0.25)  #在光标闪烁的地方输入字符串内容,不支持中文,interval参数设置每个按键之间添加延迟
#自动输入中文
import pyperclip #复制粘贴库
pyperclip.copy('你好,世界!') #复制中文内容
pyautogui.hotkey("ctrl","v")  #自动化粘贴(在光标出粘贴)

#自动摁下一个键
pyautogui.press(key="enter",presses=1,interval=0.0)  #自动摁下回车键
"""
key:传入的键盘字符串
presses:操作按键次数,默认为1
interval:每次按键的间隔时间,默认为0
"""

三 、优点与缺点

1.优点

  • 支持跨平台使用
  • 支持Python 2和3
  • api简单易用
  • 支持鼠标和键盘操作
  • 支持截屏
  • 支持高级操作:组合热键、平滑鼠标移动等

2.缺点

  • 速度较慢
  • 可能出现失败情况:定位图像时,confidence参数设置不当可能会导致失败。
  • 部分操作需要依赖系统命令
  • 不支持图像文字识别
  • 不支持跨应用数据复制
  • 对游戏类应用支持不友好
  • 只支持简单的图像识别

注:文章内容来源于观看思维创动网络课程后编写的笔记

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值