前言
近期学了用pynput模块来模拟鼠标操作,可知鼠标移动操作分为两种方式:
- 设置鼠标坐标:mouse.position = (x,y)
- 设置鼠标移动量:mouse.move(dx,dy)
在现实的人为操作中,鼠标移动轨迹不可能是直接的两点直线式移动,而是一个随机事件和距离的过程量。本例做了一个简单的测试,将鼠标的移动分为了几个小部分,每份移动距离和停留时间随机。
桌面坐标示意图:
假设人为操作中的鼠标路径是一个不回头的路径(不考虑大幅度拐弯的情况),那么假设每次移动的坐标都会介于起始和结束点为对角的矩形范围内。
方法1:控制每次鼠标的位置坐标
import random
import time
import pynput
ctr = pynput.mouse.Controller()
window_size = (1920,1080)
step = 5
target = (1366,768)
#比较坐标递进
import random
import time
import pynput
ctr = pynput.mouse.Controller()
step = 5
end = (1366,768)
#比较坐标递进
def compareAim(x,y):
if x[0]>y[0] and x[1]> y[1]:
return True
else:
return False
def move_test(ctr,step,end):
start = ctr.position
print("起始坐标:",start)
for i in range(0,step):
var = 1
while var:
middle = (random