基于坐标和图像的设计哲学
pyautogui 并不需要去解析各平台的控件结构,他的元素定位都是基于坐标的。所以不论你是通过手工截图测量,还是通过自动化工具获取,只要你能拿到坐标,你就能进行元素操作。
一,鼠标操作
1,获取坐标
import pyautogui as ui
# 获取屏幕大小
size = ui.size()
# 获取现在鼠标位置
p = ui.position()
# 坐标是否超出屏幕范围
if_on = ui.onScreen(*p)
2, 鼠标移动
ui.moveTo(x/2, y/2, duration=2, tween=easeInCirc)
参数说明:
x, y 坐标
duration 持续秒数,默认是瞬间完成
tween 特效,一般没什么用。
3, 鼠标拖拽, 移动到指定的坐标
ui.dragTo(500, 500)
4, 百发百中的射箭游戏
import random
import time
import pyautogui as ui
x, y = ui.position()
target = (800, 800)
for i in range(10):
rand_x = random.randint(0, x)
rand_y = random.randint(0, y)
# 随机生成位置
print(rand_x, rand_y)
ui.moveTo(rand_x, rand_y)
# 移动到目标位置