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)
实现自动点击想要的位置。