python:pyautogui自动化操作

导入模块

import pyautogui

常规方法

方法 作用
size() 返回监视器的大小
onScreen(x, y) 如果x,y在屏幕内,则为true

鼠标功能

方法 作用
moveTo(50,10) 将鼠标移至位置(50,10)
moveTo(100, 10, duration=5, tween=pyautogui.easeInOutQuad) 用5秒的时间移动到位置(100,10)
moveRel(100, 10) 相对当前位置鼠标向右移动100个像素,向下移动10个像素
position() 返回鼠标的当前位置
click() 鼠标左键单击
doubleClick() 鼠标左键双击
tripleClick() 鼠标左键三击
click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button=‘left’) 关键字参数:x坐标,y坐标,点击次数,点击时间间隔,点击的键(button关键字参数可以是’left’, ‘middle’,或’right’)
mouseDown() 按住鼠标按钮
mouseUp() 放回鼠标按钮
dragTo(300, 400, 2, button=‘left’) 鼠标左键用“2秒”拖拽到屏幕“300,400”的位置
dragRel(30, 0, 2, button=‘left’) 鼠标左键用“2秒”拖拽到相对当前“右边30”的位置
FAILSAFE = True 在执行PyAutoGUI函数前,如果鼠标光标位于屏幕左上角将引发pyautogui.FailSafeException异常(默认启动)
scroll(10) 鼠标滚轮上滚10
vscroll() 垂直滚动

鼠标运动方式

可用方法有moveTo(), move(), dragTo(),和drag(),格式如下:

pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)
参数 作用
easeInQuad 使鼠标光标开始缓慢移动,然后加速到达目的地
easeOutQuad 鼠标光标开始快速移动,但在接近目的地时会减慢
easeOutElastic 将超过目的地和“橡皮筋”来回,直到它定居在目的地

键盘功能

方法 作用
typewrite(‘Hello world!\n’, interval=0.25) 每个字符间隔0.25秒输入文本
typewrite([‘a’, ‘b’, ‘c’, ‘left’, ‘backspace’, ‘enter’, ‘f1’], interval=secs_between_keys) 传递一个键名列表进行操作
press(‘esc’) 按键
press([‘left’, ‘left’, ‘left’, ‘left’, ‘left’, ‘left’]) 连续按键
keyDown(‘shift’) 键盘按下
keyUp(‘shift’) 键盘释放
hotkey(‘ctrl’, ‘c’) 热键按住ctrl的同时按下c
PAUSE = 2.5 在PyAutoGUI的所有函数之后添加2.5秒延迟
(默认情况下,暂停设置为0.1秒)
KEYBOARD_KEYS 键名的完整列表

消息框功能

方法 作用
alert(‘text’,‘title’) 展示文本和OK按钮
confirm(‘text’,‘title’) 展示文本和OK、Cancel按钮
prompt(‘text’,‘title’) 让用户输入文本并展示OK、Cancel按钮
(如果用户单击“取消”函数将返回None)
password(‘text’,‘title’, mask=’*’) 密码输入框

截图功能

方法 作用
screenshot() 返回图像对象
screenshot(‘foo.png’) 返回图像对象,并保存在文件中
locateOnScreen(‘looksLikeThis.png’,confidence=0.9) 在屏幕上查找图像返回(左、顶、宽、高)的第一个位置(配合list函数),如果屏幕上找不到图像返回None,添加confidence关键字参数指定函数在屏幕上定位图像的准确性,需要先安装opencv(pip install opencv-python)
locateAllOnScreen(‘looksLikeThis.png’,confidence=0.9) 在屏幕上查找图像返回(左、顶、宽、高)所有位置(配合list函数),如果屏幕上找不到图像返回None,添加confidence关键字参数指定函数在屏幕上定位图像的准确性,需要先安装opencv(pip install opencv-python)
locateCenterOnScreen() 功能组合locateOnScreen()和center()
pixelMatchesColor(100, 200, (130, 135, 144),tolerance=10) 验证单个像素是否与给定像素匹配,tolerance关键字参数指定每个红色、绿色和蓝色值在匹配时的变化程度

定位函数

函数 作用
locateOnScreen(image, grayscale=False) 返回(左、顶、宽、高)坐标。image在屏幕上。如果在屏幕上找不到提高ImageNotFoundException。
locateCenterOnScreen(image, grayscale=False) 返回第一个找到的实例中心的(x,y)坐标。image在屏幕上。如果在屏幕上找不到提高ImageNotFoundException。
locateAllOnScreen(image, grayscale=False) 返回一个生成器,该生成器为屏幕上的图像生成元组(左、顶、宽、高)。
locate(needleImage, haystackImage, grayscale=False) 返回(左、顶、宽、高)坐标needleImage在……里面haystackImage,如果在屏幕上找不到提高ImageNotFoundException。
locateAll(needleImage, haystackImage, grayscale=False) 返回生成元组(左、顶、宽、高)的生成器needleImage被发现在haystackImage.

灰度匹配

你可以通过grayscale=True对定位函数进行稍微加速比(约30%-ISH)。这消除了从图像和屏幕截图的颜色,加快了定位,但可能导致假阳性匹配。

>>> import pyautogui
>>> button7location = pyautogui.locateOnScreen('calc7key.png', grayscale=True)
>>> button7location
(1416, 562, 50, 41)

获取RGB颜色

方法1

>>> import pyautogui
>>> im = pyautogui.screenshot()
>>> im.getpixel((100, 200))
(130, 135, 144)

方法2

>>> import pyautogui
>>> pix = pyautogui.pixel(100, 200)
>>> pix
RGB(red=130, green=135, blue=144)
>>> pix[0]
130
>>> pix.red
130

官网:https://pyautogui.readthedocs.io/en/latest/index.html

你可能感兴趣的:(第三方模块)