PyAutoGui
参考:https://zhuanlan.zhihu.com/p/466800088
参考:https://blog.csdn.net/weixin_38640052/article/details/112387653
安装:
pip3 install pyautogui
引入:
import pyautogui
获取屏幕分辨率
print(pyautogui.size()) # 返回所用显示器的分辨率; 输出:Size(width=1920, height=1080)
width,height = pyautogui.size()
print(width,height) # 1920 1080
鼠标
当前鼠标位置
print(pyautogui.position())
移动
# 将鼠标移动到指定的坐标;duration 的作用是设置移动时间
pyautogui.moveTo(100,300,duration=1)
# 当前位置右移
pyautogui.moveRel(50, 0, duration=0.25)
点击
鼠标点击(click版)
pyautogui.click(10,10) # 鼠标点击指定位置,默认左键
pyautogui.click(10,10,button='left') # 单击左键
pyautogui.click(1000,300,button='right') # 单击右键
pyautogui.click(1000,300,button='middle') # 单击中间
鼠标点击(mouse版)
pyautogui.mouseDown() # 鼠标左键按下再松开
pyautogui.mouseUp()
pyautogui.mouseDown(button='right') # 按下鼠标右键
pyautogui.mouseUp(button='right', x=100, y=200) # 移动到(100, 200)位置,然后松开鼠标右键
鼠标双击
pyautogui.doubleClick(10,10) # 指定位置,双击左键
pyautogui.rightClick(10,10) # 指定位置,双击右键
pyautogui.middleClick(10,10) # 指定位置,双击中键
拖拽
# 拖动到指定位置
# 将鼠标拖动到指定的坐标;duration 的作用是设置移动时间,所有的gui函数都有这个参数,而且都是可选参数
pyautogui.dragTo(100,300,duration=1)
# 按方向拖动
# 向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟
pyautogui.dragRel(100,500,duration=4) # 第一个参数是左右移动像素值,第二个是上下
鼠标滚轮
pyautogui.scroll(10) # 向上滚动10格
pyautogui.scroll(-10) # 向下滚动10格
按键
pyautogui.keyDown('shift') # 按下shift
pyautogui.press('4') # 按下 4
pyautogui.keyUp('shift') # 释放 shift
组合键
pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')
# 或者
pyautogui.hotkey('ctrl','c')
输出
pyautogui.typewrite('$*……%……¥', 0.5)
特殊顺序输出
pyautogui.typewrite(['T','i','s','left','left','h',]) # 输出:This
特殊按键:
enter(或return 或 \n):回车
shiftleft, shiftright:左右SHIFT键
altleft, altright:左右ALT键
ctrlleft, ctrlright:左右CTRL键
winleft, winright:Win键(windows )
command:command键(Mac OS X )
option:option(Mac OS X)
屏幕
截图
im = pyautogui.screenshot()
im.save('屏幕截图.png')
简单写法:
pyautogui.screenshot(r'C:\my_screenshot.png') # 截全屏并设置保存图片的位置和名称
im = pyautogui.screenshot(r'C:\my_screenshot.png') # 截全屏并设置保存图片的位置和名称
print(im) # 打印图片的属性
屏幕像素点
判断(x,y)是否在屏幕上
x, y = 100, 200
pyautogui.onScreen(x, y) # 结果为true
获取像素点
pix = pyautogui.screenshot().getpixel((220, 200)) # 获取坐标所在屏幕点的RGB颜色
positionStr = ' RGB:(' + str(pix[0]).rjust(3) + ',' + str(pix[1]).rjust(3) + ',' + str(pix[2]).rjust(3) + ')'
print(positionStr) # 打印结果为RGB:( 60, 63, 65)
pix = pyautogui.pixel(220, 200) # 获取坐标所在屏幕点的RGB颜色与上面三行代码作用一样
positionStr = ' RGB:(' + str(pix[0]).rjust(3) + ',' + str(pix[1]).rjust(3) + ',' + str(pix[2]).rjust(3) + ')'
print(positionStr) # 打印结果为RGB:( 60, 63, 65)
像素点匹配
im = pyautogui.screenshot() # 返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500)) # 返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组
pyautogui.pixelMatchesColor(500,500,(12,120,400)) # 是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;
找图
# 获得文件图片在现在的屏幕上面的坐标,返回的是一个元组(top, left, width, height)
# 如果截图没找到,pyautogui.locateOnScreen()函数返回None
a = pyautogui.locateOnScreen(r'C:\region_screenshot.png')
print(a) # 打印结果为Box(left=0, top=0, width=300, height=400)
x, y = pyautogui.center(a) # 获得文件图片在现在的屏幕上面的中心坐标
print(x, y)
简单写法
x, y = pyautogui.locateCenterOnScreen(r'C:\region_screenshot.png')
print(x, y)
多目标找图
多目标匹配(for循环)
打印结果为:
Box(left=0, top=0, width=300, height=400)
pyautogui.locateAllOnScreen(r'C:\region_screenshot.png')
for pos in pyautogui.locateAllOnScreen(r'C:\region_screenshot.png'):
print(pos)
多目标匹配(list)
打印结果为[Box(left=0, top=0, width=300, height=400)]
a = list(pyautogui.locateAllOnScreen(r'C:\region_screenshot.png'))
print(a)
弹窗
普通弹窗
b = pyautogui.alert(text='要开始程序么?', title='请求框', button='OK')
print(b) # 输出结果为OK
确认窗
pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel']) # OK和Cancel按钮的消息弹窗
输入框
# 可以输入的消息弹窗,带OK和Cancel按钮。用户点击OK按钮返回输入的文字,点击Cancel按钮返回None。
pyautogui.prompt(text='', title='', default='')
标签:PyAutoGui,pyautogui,鼠标,screenshot,10,键盘,print,500
From: https://www.cnblogs.com/tigerlion/p/17066097.html