Python Notes33:PyAutoGUI

Python Notes33:PyAutoGUI

PyAutoGUI

PyAutoGUI是一个纯Python的GUI自动化工具,通过它可以让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的。

安装方式

pip install pyautogui
记一次办公自动化(在鼠标移动过程中截屏以实现Choice终端数据抓取):
import pyautogui y = 360 i = 0 for x in range(467, 1532, 1): # 起始位置的x坐标为467,长度为1065水平方向上的位移(步长设为1) pyautogui.moveTo(x, y, duration=0.1) i += 1 # region参数,截图区域,由左上角坐标、宽度、高度4个值确定,如果指定区域超出了屏幕范围,超出部分会被黑色填充,默认`None`,截全屏 pyautogui.screenshot('yourpath/shot{}.png'.format(i), region=(460, 360, 1080, 330))

常用功能

  1. 获取当前鼠标的位置
x,y=pyautogui.position() print(x,y) # 输出的结果是:312,198 (结果是鼠标当前位置,可以想象成以屏幕左上角为原点的第一象限)
  1. 当前屏幕分辨率
pyautogui.size() # 输出的结果是:(1920,1080) (结果是当前屏幕分辨率)
  1. x, y是否在屏幕上
pyautogui.onScreen(x,y) # 输出的结果是:True/False
  1. 鼠标函数
pyautogui.moveTo(x,y,s) #鼠标移动到(x,y)并保持s秒,同理还有拖动方法dragTo(x,y,s)
pyautogui.click(x,y) #鼠标点击(x,y)
pyautogui.rightClick(x,y) #鼠标右击(x,y),同理还有middleClick(中击),doubleClick(双击),tripleClick(三击)
pyautogui.scroll(x,y) #鼠标在(x,y)滚动
pyautogui.mouseDown(x,y,button='left') #鼠标左边按下,同理mouseUp为鼠标松开
键盘函数
pyautogui.typewrite("hello") #输入"hello"
pyautogui.typewrite(['a','b','c']) # 依次输入"a","b","c"
pyautogui.hotkey('ctrl','c') #按键ctrl+c
pyautogui.keyUp(key_name) #松开键盘
pyautogui.keyDown(key_name) #按下键盘
信息弹窗函数
pyautogui.alert('stop') # 出现"stop"的警示框
截屏函数
image=pyautogui.screenshot(region(0,0,300,400)) # region参数,截图区域,由左上角坐标、宽度、高度4个值确定,如果指定区域超出了屏幕范围,超出部分会被黑色填充,默认`None`,截全屏
location= pyautogui.locateOnScreen('apple.png') #返回图片的位置
x,y =pyautogui.locateCenterOnScreen('apple.png') #返回图片中心的位置
记另一次办公自动化(Choice终端数据导出):
import time import pyautogui pyautogui.click(550, 190) for i in range(1, 500): time.sleep(1) pyautogui.click(550, 285) time.sleep(1) # 为了方便看效果,让每次操作后停留1秒 pyautogui.hotkey('ctrl','a') #按键ctrl+a time.sleep(1) pyautogui.click(420, 90) time.sleep(1) pyautogui.typewrite("{}-timeseries-20210328.xls".format(i)) #输入文件名 time.sleep(1) pyautogui.hotkey('enter') #按键enter time.sleep(1) pyautogui.click(550, 190) time.sleep(1) pyautogui.hotkey('down') #按下方向键 pyautogui.press('enter') # 按下并松开(轻敲)回车键 pyautogui.press(['left', 'left', 'left', 'left']) # 按下并松开(轻敲)四下左方向键
 
首先介绍Pyautogui的键盘操作。键盘操作主要有write()、press()、keyDown()、keyUp()、hotkey();5种方法。
pyautogui.write():在光标处写入一串字符
import pyautogui # interval为每个字符间隔的时间,单位为s pyautogui.write("hello world!" , interval=0.02)
  • pyautogui.press():在键盘上按下一个键,然后立刻释放。
import pyautogui pyautogui.press("enter") # 参数presses:按下的次数,默认为1 pyautogui.press("Up",5)# 按了5次“Up”键 # 参数interval:按键间隔时间,默认为0.0 pyautogui.press("Up",5,0.002)# 按了5次“Up”键,每次间隔时间为0.02S
  • pyautogui.keyDown():执行按键,但不释放。
import pyautogui pyautogui.keyDown('enter')# 按住Enter键不释放
  • pyautogui.keyUp(): 执行按键释放(注意:无需事先按下)
import pyautogui pyautogui.keyUp('enter')# 与keyDown()组合使用,相当于一次press()
  • pyautogui.hotkey():将按键顺序按下,再逆序释放
import pyautogui pyautogui.hotkey('ctrl', 'c')# ctrl-c to copy pyautogui.hotkey('ctrl', 'v')# ctrl-c to paste # 参数interval:为每次按键的间隔时间,单位为s pyautogui.hotkey('ctrl', 'alt', 'esc', interval=0.5) import time # 等效于 pyautogui.keyDown('ctrl') time.sleep(0.5) pyautogui.keyDown('shift') time.sleep(0.5) pyautogui.keyDown('esc') time.sleep(0.5) pyautogui.keyUp('esc') time.sleep(0.5) pyautogui.keyUp('shift') time.sleep(0.5) pyautogui.keyUp('ctrl') time.sleep(0.5)