PyAutoGUI介绍
PyAutoGUI是跨平台(Windows、Linux、MAC都可以使用)的GUI自动化模块,可以通过这个模块实现操作鼠标、键盘、以及一些基本的图像识别,自动执行计算机上的任务。
Windows、Linux、MAC系统PyAutoGUI模块的安装方法:
Windows安装PyAutoGUI模块
pip install pyautogui
Linux安装PyAutoGUI模块
pip3 install python3-xlib
pip3 install pyautogui
MAC安装PyAutoGUI模块
pip3 install pyobj-core
pip3 install pyobj
pip3 instal pyautogui
PyAutoGUI文档网址
https://pyautogui.readthedocs.io/en/latest/quickstart.html
PyAutoGUI的基本使用
获取当前屏幕分辨率的宽度和高度
import pyautogui
width,height=pyautogui.size()
print("屏幕的宽度为",width)
print("屏幕的宽度为",height)
获取当前鼠标的位置
import pyautogui
position=pyautogui.position()
print("鼠标的位置为",position)
判断当前位置是否在屏幕上
import pyautogui
pos=pyautogui.onScreen(100,300)
print(pos)
设置暂停
import pyautogui
pyautogui.PAUSE=2.5
打开故障暂停
# 打开故障安全模式,当出现错误的时候,将鼠标移动到左上角将引发一个可以中止程序的 :pyautogui.FailSafeException
import pyautogui
pyautogui.FAILSAFE=True
鼠标移动
import pyautogui
# XY的坐标是在屏幕的左上角有0,0原点,X向右增加,Y向下增加
# duration 移动到(x,y)位置所花费的时间
pyautogui.moveTo(100,300,duration=0.0)
# 移动到相对于当前的位置的(x,y)位置
pyautogui.moveRel(300,400,duration=0.0)
鼠标拖动
import pyautogui
# 将鼠标拖动到(x,y)位置,duration是拖动到指定位置需要的时间,默认是0.0秒
#在MAC系统上不能立即拖动
pyautogui.dragTo(100,300,duration=0.0)
# 将鼠标移动到当前位置的相对位置(x,y)
pyautogui.dragRel(200,300,duration=0.0)
鼠标点击
import pyautogui
# 在(100,300)位置上单机鼠标左键
# clicks鼠标点击的次数,默认是1次
# interval是鼠标点击间隔的时间,默认是0.0s
# button鼠标按键类型,left是左键,right是右键,middle是中间键
pyautogui.click(100,300,clicks=1,interval=2.5,button='left')
import pyautogui
# 点击鼠标右键
pyautogui.rightClick(100,300)
# 点击鼠标中间键
pyautogui.middleClick(200,300)
# 鼠标双击
pyautogui.doubleClick(400,500)
# 鼠标三重点击
pyautogui.tripleClick(600, 700)
鼠标滚动
import pyautogui
# 向上滚动
pyautogui.scroll(200)
# 向下滚动
pyautogui.scroll(-100)
# 将鼠标移动到指定位置,向上滚动10次
pyautogui.scroll(10,200,300)
# 水平滚动
# 向右滚动
pyautogui.hscroll(10)
# 向左滚动
pyautogui.hscroll(-10)
# 将鼠标移动到指定位置,向右滚动10次
pyautogui.hscroll(10,200,300)
调用单个按钮的按下和松开
import pyautogui
# 在指定位置按下鼠标左键
pyautogui.mouseDown(200,300,button='left')
# 在指定位置松开鼠标左键
pyautogui.mouseUp(200,300,button='left')
键盘操作
import pyautogui
# 使用键盘输入字符
# pyautogui.typewrite("hello \n world",interval=0.0)
# 传递密钥名称列表
pyautogui.typewrite(['a', 'b', 'c', 'left', 'backspace', 'enter', 'f1'], interval=0.0)
# 输出秘钥名称
print(pyautogui.KEY_NAMES)
# 组合按键
pyautogui.hotkey('ctrl','c')
# 按钮按下
pyautogui.keyDown("esc")
# 按钮松开
pyautogui.keyUp("esc")
消息框函数
import pyautogui
# 消息框
pyautogui.alert("消息框")
# 确认框
pyautogui.confirm("是否继续")
# 输入框
pyautogui.prompt("姓名")
屏幕截图
在Linux上使用屏幕截图,需要先:sudo apt-get install scrot
import pyautogui
img=pyautogui.screenshot()
img.save("demo.png")
获取图片的位置
import pyautogui
# 有要点击的图像文件,可以在屏幕上找到它
pyautogui.locateOnScreen("demo.png")
# 返回left,top,weight,height
# 返回屏幕上所有位置的生成器
for i in pyautogui.locateAllOnScreen("demo.png"):
print(i)
# 返回图像在屏幕上找到的中间位置的 XY 坐标
pyautogui.locateCenterOnScreen()