# 意味着所有pyautogui的指令都要暂停一秒;其他指令不会停顿;这样做,可以防止键盘鼠标操作太快;
pyautogui.PAUSE = 1
# 默认这项功能为True, 这项功能意味着:当鼠标的指针在屏幕的最坐上方,程序会报错;目的是为了防止程序无法停止
pyautogui.FAILSAFE =False
# **获取屏幕分辨率**
print(pyautogui.size()) # 返回所用显示器的分辨率; 输出:Size(width=1920, height=1080)
width,height = pyautogui.size()
print(width,height) # 1920 1080
# 向右移动100px,向下移动500px, 这个过程持续 1 秒钟;
pyautogui.moveTo(100,300,duration=1)
print(pyautogui.position())
# 得到当前鼠标位置;输出:Point(x=200, y=800)
# 单击鼠标
pyautogui.click(10,10) # 鼠标点击指定位置,默认左键
pyautogui.click(10,10,button='left') # 单击左键
pyautogui.click(1000,300,button='right') # 单击右键
pyautogui.click(1000,300,button='middle') # 单击中间
# 双击鼠标
pyautogui.doubleClick(10,10) # 指定位置,双击左键
pyautogui.rightClick(10,10) # 指定位置,双击右键
pyautogui.middleClick(10,10) # 指定位置,双击中键
# 鼠标点击与释放
pyautogui.mouseDown() # 鼠标按下
pyautogui.mouseUp() # 鼠标释放
# 鼠标控制拖动事件
pyautogui.dragTo(100,300,duration=1)
# 按方向拖动 向右拖动100px,向下拖动500px, 这个过程持续 1 秒钟
pyautogui.dragRel(100,500,duration=4) # 第一个参数是左右移动像素值,第二个是上下
# 鼠标滚轮
# 控制鼠标滚动的函数是scroll(), 传入一个整数的参数,说明向上或向下滚动多少个单位;单位根据操作系统不同而不同
pyautogui.scroll(300) # 向下滚动300个单位;
键盘输入函数
# 键盘事件
pyautogui.keyDown('shift') # 按下shift
pyautogui.press('4') # 按下 4
pyautogui.keyUp('shift') # 释放 shift
# 缓慢输出
pyautogui.typewrite('$*……%……¥', 0.5)
# 键盘特殊顺序输出
pyautogui.typewrite(['T','i','s','left','left','h',]) # 输出:This
# 快捷键
pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')
# 组合键
pyautogui.hotkey('ctrl','c')
屏幕截图,pyautogui提供了一个方法screenshot(),可以返回一个Pillow的image对象
im = pyautogui.screenshot() # 返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500)) # 返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组
pyautogui.pixelMatchesColor(500,500,(12,120,400)) # 是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;
# 截图操作
im = pyautogui.screenshot()
im.save('屏幕截图.png')
pyautogui的write、typewrite、press等方法均无法输入中文,可以用pyperclip包,pyperclip.copy(‘中国’) ,然后使用pyautogui.hotkey(‘ctrl’,‘v’)来操作。记住中间要有个time.sleep(1) 停顿1秒,要不会粘贴不上去
pyperclip.copy('中文.pdf')
pyautogui.hotkey('ctrl', 'v')
p_btn = driver.find_element(By.XPATH, '//*[@id="buttonsTr"]/td/input[9]')
p_location = p_btn.location
p_size = p_btn.size
print(p_location)
print(p_size)
p_x = p_location['x'] + p_size['width'] // 2
p_y = p_location['y'] + p_size['height'] // 2
pyautogui.moveTo(p_x + 2040, p_y + 180, duration=0.5)
pyautogui.click()
# 输出结果
{'y': 100, 'x': 205}
{'width': 87, 'height': 122}