python模块pyautogui

 

一:前置操作

自动防故障
pyautogui.FAILSAFE = False # 默认为True,这项功能意味着:当鼠标的指针在屏幕的最左上方,程序会报错;目的是为了防止程序无法停止
停顿功能
pyautogui.PAUSE = 1 # 所有pyautogui的指令都要暂停一秒;其他指令不会停顿;这样做,可以防止键盘鼠标操作太快;
点是否在屏幕上
pyautogui.onScreen(x, y) # 结果为true

二:鼠标操作

屏幕分辨率,鼠标位置
pyautogui.size() # 返回元组
pyautogui.position()
鼠标移动
pyautogui.moveTo(100,300,duration=1) # 过程用时1秒
pyautogui.moveRel(50, 0, duration=0.25) # 从当前位置,右移50像素
鼠标点击
pyautogui.click(10, 20, 2, 0.25, button='left') # 通用方法,参数:坐标 点击次数,点击时间间隔,点击左右中键,移动到坐标时间等
pyautogui.doubleClick() # 当前位置左击两下,参数:坐标 点击时间间隔,点击左右中键,移动到坐标时间等
pyautogui.mouseDown() mouseUp leftClick rightClick middleClick # 鼠标按下 鼠标松开 左击 右击 中击
鼠标拖拽
pyautogui.dragTo(100, 200, button='left') # 参数:坐标 点击左右中键,移动到坐标时间等
pyautogui.dragRel(0, -60, duration=0.2)
鼠标滚轮
pyautogui.scroll(clicks=10, x=None, y=None) # 先移动到(100,100)再向上滚动10格

 

三:键盘操作

pyautogui.typewrite('Hello world!', interval=0.0) # 每次输入间隔0.25秒,输入Hello world!
pyautogui.press('enter') # 按下并松开(轻敲)回车键, 参数可以是列表['left', 'left', 'left', 'left']
pyautogui.hotkey('ctrl', 'v') # 组合按键(Ctrl+V)
pyautogui.keyDown('shift') keyUp pyautogui.KEYBOARD_KEYS 按键名称列表

 

四:弹窗处理

提示弹窗
pyautogui.alert(text='要开始程序么?', title='请求框', button='OK') # 点击按钮或者关闭窗口都返回button的值。
选择弹窗
pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel']) # OK和Cancel按钮的消息弹窗,返回点击按钮的值,关闭窗口返回None(或者Cancel)
输入弹窗
pyautogui.prompt(text='', title='', default='') # 返回输入的值(按ok)或者None (按cancel)
pyautogui.password(text='', title='', default='', mask='*') # 同上,输入显示为*

五:图像处理

截屏
pyautogui.screenshot(r'C:\screenshot.png', region=(0, 0, 300, 400)) # imageFilename=None, region=None,返回PIL.Image.Image
取色
pix = pyautogui.pixel(220, 200) # 获取坐标(220,200)所在屏幕点的RGB颜色,返回三个元素的元组
点匹配色
pyautogui.pixelMatchesColor(100, 200, (255, 255, 245), tolerance=10) # tolerance参数红、绿、蓝误差范围 返回True或者False
找图
pyautogui.locateOnScreen(r'C:\screenshot.png') # 返回 Box(left=0, top=0, width=300, height=400),可以用pyautogui.center(a)返回中心坐标
x, y = pyautogui.locateCenterOnScreen(r'C:\screenshot.png') # 取得图中心坐标
pyautogui.locateAllOnScreen(r'C:\screenshot.png')) # 返回Box对象列表

 

上一篇:面试官:如何用Redis实现分布式锁?


下一篇:腾讯会议自动化入会脚本