用pyautogui模块实现GUI自动化

1、暂停与保护措施

  • 通过将 pyautogui.PAUSE 变量设置为要暂停的秒数,可以实现每次调用PyAutoGui函数时都等待一定的秒数。
import pyautogui
pyautogui.PAUSE = 1.5
  • 为了能够及时中断,PyAutoGUI提供了一个保护措施。当pyautogui.FAILSAFE = True时,如果把鼠标光标在屏幕左上角,PyAutoGUI函数就会产生pyautogui.FailSafeException异常。如果失控了,需要中断PyAutoGUI函数,就把鼠标光标在屏幕左上角。要禁用这个特性,就把pyautogui.FAILSAFE设置成False;将 pyautogui.FAILSAFE 设置为 True,启动自动防故障功能:
import pyautogui
pyautogui.FAILSAFE = True

2、控制鼠标移动

  • pyautogui.size()返回屏幕的宽与高
  • pyautogui.moveTo(x, y, duration)移动鼠标到绝对位置坐标,同时可设置移动时间
  • pyautogui.moveRel(Δx, Δy, duration)以相对距离移动鼠标,可设置时间;Δx, Δy为正时,分别向左向下移动
  • x, y = pyautogui.position()获取鼠标当前位置

3、控制鼠标交互

  • pyautogui.click()默认点击鼠标左键;当传入参数时可指定点击位置,点击中键、左键还是右键:pyautogui.click(100, 200, button='right') ;而pyautogui.doubleClick()pyautogui.rightClick()pyautogui.middleClick()分别执行左键、右键、中键的双击。
  • PyAutoGUI 提供了 pyautogui.dragTo()pyautogui.dragRel() 函数,将鼠标拖动到一个新的位置,或相对当前位置的位置,用法与pyautogui.moveTo()pyautogui.moveRel()一样,它们同样可以设置duration。
  • pyautogui.scroll(x),x为正时向上滚动,为负时向下滚动。

4、处理屏幕

  • im = pyautogui.screenshot()获取屏幕截图快照,得到一个image对象
  • pyautogui.pixelMatchesColor(x, y, (R, G, B))如果对应(x, y)坐标的pixel值为括号中的参数值返回True;否则返回False。可以先用im.getpixel()得到对应的像素点值,再来匹配,以实现定位。

5、利用locateOnScreen()抓取截图在屏幕快照中的对应位置

  • 比如当要在屏幕上的按钮处进行点击操作,可以先把按键的图标截图下来submit.png,传递给locateOnScreen()获取一个元组,得到截图左上角点在屏幕快照中的位置以及截图的宽与高(left, top, width, height)。
import pyautogui
info_tuple = pyautogui.locateOnScreen('submit.png')
print(info_tuple)

得到Box(left=586, top=444, width=144, height=129)
可继续添加

center_position = pyautogui.center(info_tuple)
pyautogui.doubleClick(center_position)

实现自动点击想要的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值