当前位置: 首页 > 工具软件 > PyAutoGUI > 使用案例 >

pyautogui

端木弘方
2023-12-01

本文主要介绍GUI自动化

pyautogui是自动化控制键盘和鼠标
pyperclip是个剪贴板,用于纯文本的复制和粘贴

关闭

可以直接关闭

设置

pyautogui.PAUSE = 1  # 每个pyautogui函数调用后都会等待1秒钟,而非pyautogui不受影响

将鼠标移动到屏幕左上角,会产生pyautogui.FailSafeException异常,从而停止程序

pyautogui.FAILSAFE = True  # 开启上述功能

鼠标

鼠标移动

xy坐标都是从左上角开始计算,
x是从左到右
y是从上到下

分辨率是屏幕的宽和高有多少像素

width, height = pyautogui.size()  # 返回屏幕的宽和高,例如输出:(1920,1080)
# 移动到指定位置
pyautogui.moveTo(100, 200, duration=0.25)  # 将鼠标移动到(100,200)位置上,需要0.25秒,不写duration则默认为0(立即移动)
# 相对于当前位置移动
pyautogui.moveRel(100, -100, duration=0.5)  # 花费0.5s右移100,上移100的位置

获取当前位置

x,y = pyautogui.position()

鼠标点击

pyautogui.click(x=211, y=64, clicks=1)  # 鼠标左键点击相应位置,clicks为点击次数,默认为左键
pyautogui.click(x=985, y=32, button='right') # 右键点击,button的取值有left,right,middle
pyautogui.doubleClick(x=552, y=346)  # 左键双击
pyautogui.rightClick()  # 右键双击
pyautogui.middleClick()  # 中键双击

点击的实质就是鼠标键按下后松开,即

pyautogui.mouseDown()  # 鼠标按下
pyautogui.mouseUp()  # 鼠标松开
# 实际上,click()就是封装了上述两个函数

鼠标拖动

拖动,即为按住一个键不动,然后移动

拖动时,为防止错误,建议使用duration关键字

pyautogui.dragTo(200, 200, duration = 0.2)  # 拖动到指定位置
pyautogui.dragRel(-200, 0, durantion = 0.2)  # 相对位置拖动

利用pyautogui可进行画图

鼠标滚动

pyautogui.scroll(200)  # 向上滚动200个单位,实际试下滚动的距离

屏幕

获取屏幕快照(截屏)

im = pyautogui.screenshot()  # im是一个Image对象
im.getpixel((0,0))  # 指定坐标处的像素颜色,得到RGB三元组

坐标比较颜色

// 比较指定坐标处颜色和给定颜色是否相同
pyautogui.pixelMatchesColor(50, 200, (255,255,255))  # 前两个参数是x,y坐标,后面是颜色,相同返回True

定位图像

// 发现单个图像
pyautogui.locateOnScreen('summit.png')  # summit.png为已存在的图像。结果会返回(643, 745, 70, 29),表示屏幕首次发现图像的左x坐标,顶上的y坐标,宽度,高度。若找不到图像,则返回None

// 发现多个图像
list(pyautogui.locateAllOnScreen('summit.png'))  # locateAllOnScreen会返回一个Generator对象,可以作为list的参数,返回一个四元元组的列表

// 得到图像的中心坐标
cx,cy = pyautogui.center((643, 745, 70, 29)) # 得到区域中心坐标,(678,759)

键盘

键盘输入字符串

pyautogui.typewrite("Hello World",0.25) # 第二个参数为字符输入的间隔时间
pyautogui.typewrite(['a','b','left','c'])  # 输入ab向左一格c

两者配合使用
在需要输入中文或英文时,由于输入法影响,常规的键盘输入会比较麻烦,为确保输入结果准确,可使用复制粘贴

pyperclip.copy("中文English") # 复制
pyautogui.hotkey('ctrl', 'v') # 粘贴

按键盘

参考PyKeyboard属性(全小写)

键盘键含义
enter回车
shfitleft左shfit键
backspace退格键
# 按下和抬起
pyautogui.press("down")  # 按一下down键
pyautogui.keyDown("shift") # 按下
pyautogui.keyUp("shfit") # 释放

热键

上面已经提到的

pyautogui.hotkey('ctrl','c')
 类似资料:

相关阅读

相关文章

相关问答