pyautoGUI自动化脚本
模块原理代码模块pyautogui该模块包含了很多模拟操作鼠标,键盘动作的功能time.sleep(2)程序睡2s,让你有时间切换到自动化操作的页面原理获得操作点(也就是x,y轴坐标,持续时间)进行模拟人工操作代码下面每个代码块都是独立的import timeimport pyautogui#---------------------#获取屏幕大小#---------------------#电脑
·
模块
pyautogui
该模块包含了很多模拟操作鼠标,键盘动作的功能
time.sleep(2)
程序睡2s,让你有时间切换到自动化操作的页面
安装依赖
pip install pyperclip
pip install pyautogui
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple (这个安装失败自行百度)
pip install pillow
原理
- 获得操作点(也就是x,y轴坐标,持续时间)
- 进行模拟人工操作
测试环境
windows 10
python 3.10 (其他版本不知道会不会出问题)
代码
下面每个代码块都是独立的
获取屏幕大小
import time
import pyautogui
#---------------------
# 获取屏幕大小
#---------------------
#电脑屏幕大小
size = pyautogui.size()
print(f"screen_size:{size}")
# 鼠标当前位置
mouse_pos = pyautogui.position()
print(f'mouse_pos:{mouse_pos}')
# 判断位置点是否在屏幕内
print(pyautogui.onScreen(100,100))
结果
移动鼠标位置
#---------------------
# 移动鼠标位置
#---------------------
# 等待手动切换页面时间
time.sleep(2)
# 自动移动鼠标到(100,100)的位置,1s内完成
pyautogui.moveTo(100,100,duration=1)
# 把鼠标移动到画面中央,周期0.5s(这里的size与上面代码块有关)
pyautogui.moveTo(size.width/2,size.height/2,duration=0.5)
# 鼠标根据当前位置相对移动,周期1s
pyautogui.moveRel(100,0,duration=1)
结果
不好展示,就是在当前页面下,鼠标1s内移到(100,100)的位置,然后又移到屏幕中点,最后再从中央往右移动100像素(这个不知道是不是像素)
获取鼠标实时位置
#---------------------
# 获取鼠标实时位置
#---------------------
"""
如果照片识别不顶用,可以先用下面的代码,获取指定操作的位置
"""
last_pos = pyautogui.position()
try:
while True:
#新位置
new_pos = pyautogui.position()
if last_pos != new_pos:
print(new_pos)
last_pos = new_pos
# ctrl+c中止
except KeyboardInterrupt:
print('\nExit.')
结果
移动鼠标,控制台都会实时打印当前位置
获取图像位置&鼠标点击
#---------------
# 鼠标点击
#---------------
"""
获取图像位置
"""
# 等待手动切换页面时间
time.sleep(2)
# 取得指定图像的位置,r''表示斜杠不转义
help_pos = pyautogui.locateOnScreen(r'E:\picture\btn_help.png')
print(help_pos) #Box(left=645, top=5, width=83, height=32)
# 取得指定图像的中心位置
help_center_pos = pyautogui.center(help_pos)
print(help_center_pos) #Point(x=686, y=21)
"""
进行点击操作
"""
# 方法一(可以使用help_center_pos对象进行定位)
# 移动鼠标
# pyautogui.moveTo(help_center_pos,duration=1)
#点击
# pyautogui.click()
# 方法二(只能使用help_pos对象进行定位)
# 这种可以减少代码量
# 直接调用click函数(按1次左键,间隔1s后再进行其他操作
#这里+10为了鼠标靠近图像里面,因为默认获取的是图像左上角位置)
pyautogui.click(help_pos.left+10,help_pos.top+10,1,1,button='left')
结果
要抓取的图片btn_help.png
原来鼠标在红圈的地方
程序运行之后,鼠标自动划到指定的图像那(btn_help.png)
键盘输入
# ----------------
# 键盘输入
# ----------------
time.sleep(2)
# 点击一次编辑器
pyautogui.click(button='left')
# 直接输入【I like Python】
pyautogui.typewrite('I like Python.')
# 逐字输入内容,间隔时间0.25s
pyautogui.typewrite('\nI like Python too.',0.25)
# 按照键盘布局按内容
pyautogui.typewrite(['enter','g','o','o','d','left','left','left','backspace','G','end','.'],0.25)
结果
- 运行程序并手动打开记事本(2s之内必须打开不然没效果,而且鼠标要在编辑器里面)

2.可以看到自动写下我们想写的东西,而且如果你运行该程序会看到,第二行和第三行的字母好像是一个一个敲上去的
组合键输入
#----------------
# 组合键输入
#----------------
"""
模拟人工使用快捷键
"""
time.sleep(2)
# 每个动作间隔0.5s
pyautogui.PAUSE = 0.5
# 按一次f5
pyautogui.press('f5')
# 按一次esc
pyautogui.press('esc')
# 按住ctrl+end 光标移到最后一行
pyautogui.keyDown('ctrl')
pyautogui.press('end')
# 松开ctrl键
pyautogui.keyUp('ctrl')
# 按住ctrl+a 内容全选
pyautogui.keyDown('ctrl')
pyautogui.press('a')
pyautogui.press('c')
pyautogui.keyUp('ctrl')
# 光标移到最后一个字符
pyautogui.hotkey('ctrl','end')
# 输入两个空行
pyautogui.typewrite('\n\n')
# 粘贴
pyautogui.hotkey('ctrl','v')
结果
- 运行前

2.运行后
按键名称
不知道就在下面找你想要的键盘名称
# pyautogui.KEYBOARD_KEYS数组中就是press(),keyDown(),keyUp()和hotkey()函数
#可以输入的按键名称
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.',
'/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@',
'[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~',
'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace', 'browserback',
'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch',
'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal',
'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10',
'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21', 'f22',
'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul',
'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2',
'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9',
'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print',
'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select',
'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab',
'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command',
'option', 'optionleft', 'optionright']
更多推荐




所有评论(0)