精华内容
下载资源
问答
  • PyAutoGUI
    2021-10-23 18:34:21

    本文主要介绍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')
    
    更多相关内容
  • pyautogui官方用户手册

    2022-02-12 13:24:29
    pyautogui官方用户手册
  • PyAutoGUI

    2022-03-01 10:21:16
    PyAutoGUI安装cmd Windows安装pycharm安装备忘录通用功能故障安全鼠标功能键盘功能消息框功能截图函数鼠标控制功能屏幕和鼠标位置鼠标移动鼠标拖动补间/缓动功能鼠标点击鼠标按下和鼠标悬停函数鼠标滚动键盘控制功能...

    安装

    cmd Windows安装

    pip install pyautogui
    

    pycharm安装

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/3072aad07a37471a9719b069253166b5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YyX5rO9b2w=,size_20,color_FFFFFF,t_

    备忘录

    导入 pyautogui

    import pyautogui
    

    通用功能

    mouse = pyautogui.position()  # 返回当前鼠标 x 和 y 
    screen = pyautogui.size()  # 当前屏幕分辨率宽高
    flag = pyautogui.onScreen(100, 200)  # 如果 x & y 在屏幕内,则为真。
    

    故障安全

    pyautogui.PAUSE = 2.5 # 设置每次 PyAutoGUI 调用后 2.5 秒的暂停
    pyautogui.FAILSAFE = True # 当故障安全模式是时,将鼠标移动到左上角将提高一个可以中止您的程序
    

    鼠标功能

    pyautogui.moveTo(0, 0, duration=0.2)  # 在0.2秒内移动鼠标到XY坐标
    pyautogui.moveRel(200, 200, duration=1)  # 相对于当前位置移动鼠标 duration移动秒数
    
    pyautogui.FAILSAFE = False
    pyautogui.dragTo(0, 0, duration=1)  # 将鼠标拖动到 XY
    pyautogui.dragRel(100, 100, duration=1)  # 相对于当前位置拖动鼠标
    
    """
    鼠标拖动到 x & y 并点击
    x : x坐标
    y : y坐标
    clicks : 点击次数
    interval : 点击之间的秒数
    button : 按键 
    	参数 : LEFT、MIDDLE、RIGHT、PRIMARY、SECONDARY
    """
    pyautogui.click(x=10, y=10, clicks=1, interval=1, button='left')
    pyautogui.rightClick(x=moveToX, y=moveToY) # 鼠标移动到 x & y 并右键单击
    pyautogui.middleClick(x=moveToX, y=moveToY) # 鼠标移动到 x & y 并中键单击
    pyautogui.doubleClick(x=moveToX, y=moveToY) # 鼠标移动到 x & y 并左键双击
    pyautogui.tripleClick(x=moveToX, y=moveToY) # 鼠标移动到 x & y 并执行三次单击
    
    pyautogui.scroll(1000, x=1075, y=641)  # 执行鼠标滚轮的滚动
    pyautogui.mouseDown(x=moveToX, y=moveToY, button='left') # 单个按钮向下和向上事件可以单独调用
    pyautogui.mouseUp(x=moveToX, y=moveToY, button='left')
    

    键盘功能

    pyautogui.typewrite('Hello World!\n', interval=0.1)  # 用于输入文本,换行符是 Enter , interval = 每个字符间隔的秒数
    """
    也可以传递键名列表
    键名称的完整列表位于 pyautogui.KEYBOARD_KEYS 中。
    """
    pyautogui.typewrite(['a', 'b', 'c', 'left', 'backspace', 'enter'], interval=0.5)
    
    # 单个按钮向下和向上事件可以单独调用
    pyautogui.keyDown(key_name)
    pyautogui.keyUp(key_name)
    

    消息框功能

    pyautogui.alert('这将显示一些带有 OK 按钮的文本。')
    pyautogui.confirm('这将显示文本并有一个确定和取消按钮。')
    pyautogui.prompt('这允许用户输入一个字符串并按 OK。')
    

    截图函数

    screen = pyautogui.screenshot()  # 返回一个 Pillow/PIL 图片对象
    foo = pyautogui.screenshot('foo.png')  # 返回 Pillow/PIL 图片对象,并将其保存到文件中
    test = pyautogui.locateOnScreen('test.png')  # 返回找到的第一个位置(左、上、宽、高)
    

    鼠标控制功能

    屏幕和鼠标位置

    屏幕上的位置由 X 和 Y 笛卡尔坐标表示。X 坐标从左侧的 0 开始,向右增加。与数学不同,Y 坐标从顶部的 0 开始,向下增加。

    0,0       X increases -->
    +---------------------------+
    |                           | Y increases
    |                           |     |
    |   1920 x 1080 screen      |     |
    |                           |     V
    |                           |
    |                           |
    +---------------------------+ 1919, 1079
    

    左上角的像素位于坐标 0, 0 处。如果屏幕的分辨率为 1920 x 1080,则右下角的像素将为 1919, 1079(因为坐标从 0 开始,而不是 1)。
    屏幕分辨率大小由函数作为两个整数的元组返回。鼠标光标的当前 X 和 Y 坐标由函数返回。
    例如:

    >>> pyautogui.size()
    (1920, 1080)
    >>> pyautogui.position()
    (187, 567)
    

    这是一个简短的Python 3程序,它将不断打印出鼠标光标的位置:

    #! python3
    import pyautogui, sys
    print('Press Ctrl-C to quit.')
    try:
        while True:
            x, y = pyautogui.position()
            positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
            print(positionStr, end='')
            print('\b' * len(positionStr), end='', flush=True)
    except KeyboardInterrupt:
        print('\n')
    

    这是 Python 2 版本:

    #! python
    import pyautogui, sys
    print('Press Ctrl-C to quit.')
    try:
        while True:
            x, y = pyautogui.position()
            positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
            print positionStr,
            print '\b' * (len(positionStr) + 2),
            sys.stdout.flush()
    except KeyboardInterrupt:
        print '\n'
    

    要检查屏幕上是否有 XY 坐标,请将它们(作为两个整数参数或具有两个整数的单个元组/列表参数)传递给函数,如果它们在屏幕边界内,则返回。

    >>> pyautogui.onScreen(0, 0)
    True
    >>> pyautogui.onScreen(0, -1)
    False
    >>> pyautogui.onScreen(0, 99999999)
    False
    >>> pyautogui.size()
    (1920, 1080)
    >>> pyautogui.onScreen(1920, 1080)
    False
    >>> pyautogui.onScreen(1919, 1079)
    True
    

    鼠标移动

    该函数会将鼠标光标移动到您传递它的 X 和 Y 整数坐标。可以将坐标的值传递给表示"当前鼠标光标位置"的值。

    >>> pyautogui.moveTo(100, 200)   # 将鼠标移动到X (100) Y(200)处。
    >>> pyautogui.moveTo(None, 500)  # 将鼠标移动到X (100) Y(500)处。
    >>> pyautogui.moveTo(600, None)  # 将鼠标移动到X (600) Y(500)处。
    

    通常,鼠标光标将立即移动到新坐标。如果希望鼠标逐渐移动到新位置,请传递第三个参数来表示移动应采用的持续时间(以秒为单位)。

    >>> pyautogui.moveTo(100, 200, 2)   # 将鼠标移动到X的100,Y的200在2秒内
    

    如果要将鼠标光标相对于其当前位置移动几个像素,请使用该函数。此函数具有与 类似的参数。

    >>> pyautogui.moveTo(100, 200)  # 将鼠标移动到X (100) Y(200)处。
    >>> pyautogui.move(0, 50)       # 将鼠标向下移动50像素。
    >>> pyautogui.move(-30, 0)      # 将鼠标向左移动30像素。
    >>> pyautogui.move(-30, None)   # 移动鼠标向左30像素。
    

    鼠标拖动

    PyAutoGUI 和函数具有与 和 函数相似的参数。此外,它们还有一个关键字,可以设置为 ,以及拖动时要按住的鼠标按钮。

    >>> pyautogui.dragTo(100, 200, button='left')     # 按住鼠标左键拖动鼠标到X值为100,Y值为200  
    >>> pyautogui.dragTo(300, 400, 2, button='left')  # 按住鼠标左键拖动鼠标到X为300,Y为400,超过2秒  
    >>> pyautogui.drag(30, 0, 2, button='right')   # 按住鼠标右键拖动鼠标向左拖动30像素超过2秒
    

    补间/缓动功能

    补间是使鼠标移动花哨的额外功能。如果您不关心这一点,则可以跳过此部分。
    例如:

    >>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)     # 开始慢,结束快
    >>> pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)    # 开始快,结束慢
    >>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)  # 开始和结束要快,中间要慢
    >>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)   # 最后反弹
    >>> pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)  # 最后是橡皮筋
    

    这些补间函数是从Al Sweigart的PyTweening模块复制的:https://pypi.python.org/pypi/PyTweening https://github.com/asweigart/pytweening 该模块不必安装即可使用补间函数。
    如果要创建自己的补间函数,请定义一个函数,该函数在(表示鼠标移动的开始)和(表示鼠标移动的结束)之间采用单个 float 参数,并在 和 之间返回浮点值。

    鼠标点击

    该函数模拟鼠标在鼠标当前位置单击一个左键。"咔哒"被定义为按下按钮,然后向上释放。

    >>> pyautogui.click()
    

    要在单击之前合并调用,请为 and 关键字参数传递整数:moveTo()

    >>> pyautogui.click(x=100, y=200)  # 移动到100,200,然后点击鼠标左键。  
    

    要指定其他鼠标按钮来单击、传递 、或为关键字参数指定,请执行以下操作:‘left’‘middle’'right’button

    >>> pyautogui.click(button='right')  # 右击鼠标
    

    若要执行多次单击,请将整数传递给关键字参数。(可选)您可以将浮点数或整数传递给关键字参数,以指定两次点击之间的暂停量(以秒为单位)。例如:clicks

    >>> pyautogui.click(clicks=2)  # 双击鼠标左键
    >>> pyautogui.click(clicks=2, interval=0.25)  # 双击鼠标左键,但每次单击之间有四分之一秒的停顿
    >>> pyautogui.click(button='right', clicks=3, interval=0.25)  # 三次点击鼠标右键,在两次点击之间暂停四分之一秒
    

    作为一个方便的快捷方式,该功能将执行双击鼠标左键。它还具有可选的和关键字参数。例如:doubleClick()

    >>> pyautogui.doubleClick()  # 双击左键
    

    还有一个函数具有类似的可选关键字参数。tripleClick()
    该函数具有可选参数和关键字参数。rightClick()

    鼠标按下和鼠标悬停函数

    鼠标单击和拖动由按下鼠标按钮和将其释放回来组成。如果要单独执行这些操作,请调用 and 函数。它们具有相同的 、 和

    >>> pyautogui.mouseDown(); pyautogui.mouseUp()  # 这和点击鼠标左键是一样的
    >>> pyautogui.mouseDown(button='right')  # 按下正确的按钮
    >>> pyautogui.mouseUp(button='right', x=100, y=200)  # 将鼠标移动到100,200,然后松开右键向上。  
    

    鼠标滚动

    可以通过调用该函数并传递整数次的"单击"来模拟鼠标滚轮滚动。"点击"中的滚动量因平台而异。(可选)可以为 and 关键字参数传递整数,以便在执行滚动之前移动鼠标光标。例如:scroll()xy

    >>> pyautogui.scroll(10)   # 向上滚动10“单击”
    >>> pyautogui.scroll(-10)  # 向下滚动10“单击”
    >>> pyautogui.scroll(10, x=100, y=100)  # 将鼠标光标移动到100,200,然后向上滚动10“单击”
    

    在OS X和Linux平台上,PyAutoGUI还可以通过调用hscroll()函数来执行水平滚动。例如:

    >>> pyautogui.hscroll(10)   # 向右滚动10“点击”
    >>> pyautogui.hscroll(-10)   # 滚动左10“点击”
    

    该函数是 执行垂直滚动的 包装器。

    键盘控制功能

    write()函数

    主要键盘功能是 。此函数将键入传递的字符串中的字符。若要在按每个字符键之间添加延迟间隔,请为关键字参数传递 int 或 float。
    例如:

    >>> pyautogui.write('Hello world!')                 # 打印出“你好世界!”即刻
    >>> pyautogui.write('Hello world!', interval=0.25)  # 输出“Hello world!”,每个字符后面有四分之一秒的延迟 
    

    例如,您只能使用 的单字符键与 按 键,因此无法按 Shift 或 F1 键。write()

    press(), keyDown(), keyUp()函数

    若要按这些键,请调用该函数,并将其传递给来自 、 、 的字符串。
    例如:

    >>> pyautogui.press('enter')  # 按ENTER键
    >>> pyautogui.press('f1')     # 按f1键
    >>> pyautogui.press('left')   # 按左箭头键
    

    该函数实际上只是 and 函数的包装器,它模拟按下一个键,然后将其释放起来。这些函数可以自己调用。例如,若要在按住 Shift 键的同时按三次向左箭头键,请调用以下命令:press(),keyDown(),keyUp()

    >>> pyautogui.keyDown('shift')  # 按住Shift键
    >>> pyautogui.press('left')     # 按左箭头键
    >>> pyautogui.press('left')     # 按左箭头键
    >>> pyautogui.press('left')     # 按左箭头键
    >>> pyautogui.keyUp('shift')    # 释放Shift键
    

    要按与按下多个键类似的键,请将字符串列表传递给 。例如:write()press()

    >>> pyautogui.press(['left', 'left', 'left'])
    

    或者您可以设置按压次数:left

    >>> pyautogui.press('left', presses=3)
    

    若要在每次按下之间添加延迟间隔,请为关键字参数传递 int 或 float。interval

    hold()上下文管理器

    为了方便持有密钥,该函数可以用作上下文管理器,并从 , , 等传递字符串,并且此密钥将在上下文块的持续时间内保留。

    >>> with pyautogui.hold('shift'):
            pyautogui.press(['left', 'left', 'left'])
    

    …等效于以下代码:

    >>> pyautogui.keyDown('shift')  # 按住Shift键
    >>> pyautogui.press('left')     # 按左箭头键
    >>> pyautogui.press('left')     # 按左箭头键
    >>> pyautogui.press('left')     # 按左箭头键
    >>> pyautogui.keyUp('shift')    # 释放Shift键
    

    hotkey()函数

    为了方便按热键或键盘快捷键,可以传递几个键串,这些键串将按顺序按下,然后以相反的顺序释放。

    >>> pyautogui.hotkey('ctrl', 'shift', 'esc')
    

    …等效于以下代码:

    >>> pyautogui.keyDown('ctrl')
    >>> pyautogui.keyDown('shift')
    >>> pyautogui.keyDown('esc')
    >>> pyautogui.keyUp('esc')
    >>> pyautogui.keyUp('shift')
    >>> pyautogui.keyUp('ctrl')
    

    若要在每次按下之间添加延迟间隔,请为关键字参数传递 int 或 float。

    KEYBOARD_KEYS

    ['\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']
    

    消息框功能

    alert()函数

    >>> alert(text='', title='', button='OK')
    

    显示一个简单的消息框,其中包含文本和单个"确定"按钮。返回单击的按钮的文本。

    confirm()函数

    >>> confirm(text='', title='', buttons=['OK', 'Cancel'])
    

    显示一个带有"确定"和"取消"按钮的消息框。可以自定义按钮的数量和文本。返回单击的按钮的文本。

    prompt() 函数

    >>> prompt(text='', title='' , default='')
    

    显示一个带有文本输入以及"确定"和"取消"按钮的消息框。返回输入的文本,如果单击了"取消",则返回"无"。

    password() 函数

    >>> password(text='', title='', default='', mask='*')
    

    显示一个带有文本输入以及"确定"和"取消"按钮的消息框。键入的字符显示为 。返回输入的文本,如果单击了"取消",则返回"无"。

    截图函数

    PyAutoGUI 可以截取屏幕截图,将其保存到文件中,并在屏幕中找到图像。如果您有一个小图像,例如,需要单击的按钮并希望在屏幕上找到它,这将非常有用。这些功能由 PyScreeze 模块提供,该模块随 PyAutoGUI 一起安装。

    屏幕截图功能需要枕头模块。OS X 使用该命令,该命令随操作系统一起提供。Linux 使用该命令,该命令可以通过运行 来安装。

    screenshot() 函数

    调用将返回一个 Image 对象(有关详细信息,请参阅枕头或 PIL 模块文档)。传递文件名字符串会将屏幕截图保存到文件中,并将其作为 Image 对象返回。

    >>> import pyautogui
    >>> im1 = pyautogui.screenshot()
    >>> im2 = pyautogui.screenshot('my_screenshot.png')
    

    在1920 x 1080屏幕上,该功能大约需要100毫秒 - 它不快,但并不慢。screenshot()

    如果您不想查看整个屏幕的屏幕截图,还有一个可选的关键字参数。您可以传递要捕获的区域的左侧、顶部、宽度和高度的四个整数元组:region

    >>> import pyautogui
    >>> im = pyautogui.screenshot(region=(0,0, 300, 400))
    

    定位功能

    注意:从版本 0.9.41 开始,如果 locate 函数找不到提供的图像,它们将引发而不是返回 。
    如果您有图像文件,则可以在屏幕上直观地找到它。例如,假设计算器应用正在您的计算机上运行,如下所示:
    在这里插入图片描述
    如果您不知道计算器按钮所在位置的确切屏幕坐标,则无法调用 and 函数。计算器每次启动时都可能出现在稍微不同的位置,导致您每次都重新找到坐标。但是,如果您有按钮的图像,例如 7 按钮的图像:moveTo(),click()
    …您可以调用该函数来获取屏幕坐标。返回值是一个 4 整数元组:(左、上、宽、高)。可以传递此元组以获取该区域中心的 X 和 Y 坐标。如果在屏幕上找不到该图像,则 引发 。

    >>> import pyautogui
    >>> button7location = pyautogui.locateOnScreen('calc7key.png')
    >>> button7location
    Box(left=1416, top=562, width=50, height=41)
    >>> button7location[0]
    1416
    >>> button7location.left
    1416
    >>> button7point = pyautogui.center(button7location)
    >>> button7point
    Point(x=1441, y=582)
    >>> button7point[0]
    1441
    >>> button7point.x
    1441
    >>> button7x, button7y = button7point
    >>> pyautogui.click(button7x, button7y)  # 点击找到7按钮的中心
    >>> pyautogui.click('calc7key.png') # 要点击找到7按钮的中心的快捷方式版本
    

    可选的关键字参数指定函数在屏幕上定位图像的准确性。如果函数由于像素差异可以忽略不计而无法定位图像,这将很有帮助:confidence

    >>> import pyautogui
    >>> button7location = pyautogui.locateOnScreen('calc7key.png', confidence=0.9)
    >>> button7location
    Box(left=1416, top=562, width=50, height=41)
    

    注意:您需要安装 OpenCV 才能使用该关键字
    该函数结合了和:locateCenterOnScreen(),locateOnScreen(),center()

    >>> import pyautogui
    >>> x, y = pyautogui.locateCenterOnScreen('calc7key.png')
    >>> pyautogui.click(x, y)
    

    在 1920 x 1080 屏幕上,定位函数调用大约需要 1 或 2 秒。这对于动作视频游戏来说可能太慢了,但适用于大多数目的和应用程序。

    有几个"定位"功能。他们都开始看屏幕(或图像)的左上角,然后向右看,然后向下看。参数可以是

    locateOnScreen(image, grayscale=False)- 返回(左,上,宽,高)在屏幕上首次找到的实例的坐标。如果在屏幕上找不到,则引发。imageImageNotFoundException
    locateCenterOnScreen(image, grayscale=False)- 返回 (x, y) 坐标,该坐标是屏幕上第一个找到的 实例的中心。如果在屏幕上找不到,则引发。imageImageNotFoundException
    locateAllOnScreen(image, grayscale=False)- 返回一个生成器,该生成器为图像在屏幕上的位置生成(左、上、宽、高)元组。
    locate(needleImage, haystackImage, grayscale=False)- 返回 (左、 顶部、 宽度、 高度) 第一个找到的实例的坐标。如果在屏幕上找不到,则引发。needleImagehaystackImageImageNotFoundException
    locateAll(needleImage, haystackImage, grayscale=False)- 返回一个生成器,该生成器(左、上、宽、高)元组,用于在 中找到的位置。needleImagehaystackImage
    "查找全部"函数可以在 for 循环中使用,也可以传递给:list()

    >>> import pyautogui
    >>> for pos in pyautogui.locateAllOnScreen('someButton.png')
    ...   print(pos)
    ...
    (1101, 252, 50, 50)
    (59, 481, 50, 50)
    (1395, 640, 50, 50)
    (1838, 676, 50, 50)
    >>> list(pyautogui.locateAllOnScreen('someButton.png'))
    [(1101, 252, 50, 50), (59, 481, 50, 50), (1395, 640, 50, 50), (1838, 676, 50, 50)]
    

    这些"定位"功能相当昂贵;他们可能需要整整一秒钟才能运行。加快速度的最佳方法是传递一个参数(一个 4 整数元组(左、上、宽、高))以仅搜索屏幕的较小区域,而不是全屏:region

    >>> import pyautogui
    >>> pyautogui.locateOnScreen('someButton.png', region=(0,0, 300, 400))
    

    灰度匹配

    (可选)您可以传递到定位函数以提供轻微的加速(约 30%左右)。这会降低图像和屏幕截图中的颜色饱和度,从而加快定位速度,但可能导致误报匹配。grayscale=True

    >>> import pyautogui
    >>> button7location = pyautogui.locateOnScreen('calc7key.png', grayscale=True)
    >>> button7location
    (1416, 562, 50, 41)
    

    像素匹配

    若要获取屏幕截图中像素的 RGB 颜色,请使用 Image 对象的方法:getpixel()

    >>> import pyautogui
    >>> im = pyautogui.screenshot()
    >>> im.getpixel((100, 200))
    (130, 135, 144)
    

    或者作为单个函数,调用 PyAutoGUI 函数,它是以前调用的包装器:pixel()

    >>> import pyautogui
    >>> pix = pyautogui.pixel(100, 200)
    >>> pix
    RGB(red=130, green=135, blue=144)
    >>> pix[0]
    130
    >>> pix.red
    130
    

    如果只需要验证单个像素是否与给定像素匹配,请调用该函数,向其传递它所表示颜色的 X 坐标、Y 坐标和 RGB 元组:pixelMatchesColor()

    >>> import pyautogui
    >>> pyautogui.pixelMatchesColor(100, 200, (130, 135, 144))
    True
    >>> pyautogui.pixelMatchesColor(100, 200, (0, 0, 0))
    False
    

    可选的关键字参数指定每个红色、绿色和蓝色值在仍然匹配时可以变化的程度:tolerance

    >>> import pyautogui
    >>> pyautogui.pixelMatchesColor(100, 200, (130, 135, 144))
    True
    >>> pyautogui.pixelMatchesColor(100, 200, (140, 125, 134))
    False
    >>> pyautogui.pixelMatchesColor(100, 200, (140, 125, 134), tolerance=10)
    True
    
    展开全文
  • 在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库。就本人而言,我更喜欢使用pyautogui库,该库功能多,使用便利。下面给大家介绍一下pyautogui库的使用方法。在cmd命令框中...
  • python使用pyautogui截图并进行文字识别.py
  • python库pyautogui自动化输入文字
  • pyautogui是一个可以控制鼠标和键盘的python库,类似的还有pywin32。 pyautogui的安装 pip3 install python3-xlib 依赖库 sudo apt-get install scrot 依赖库 pip3 install pyautogui python3下安装pyautogui库 ...
  • Python有一个可以操作键盘鼠标的库,众所周知,pyautogui,非常好用,但是只有Python的版本,搜寻了一下C#有没有类似的库,结果没有找到,于是自己就仿照部分功能封装了一下。封装的不是很好,没有进一步的封装,...
  • 今天小编就为大家分享一篇python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 我使用Pyautogui创建的项目的存储库。 Classs.py: 这是我的私人机器人,可以加入我的Google课程。 目前正在开发一种完全可定制的通用版本。 您可以在我处理它时检查它的进度,要求gmeetclass文件夹位于同一目录中 ...
  • import pyautogui import time import win32clipboard as w point_a = (1200,300) point_b = (1182,333) white_x = 12 white_y = 12 pic_width = 343 pic_height = 201 pic_start_x = 0 pic_start_y = 0 pic_in_...
  • python3 pyautogui

    2019-04-01 23:25:42
    python3使用pip 安装pyautogui包时报错。下载该压缩包后先安装pygetwindow,再安装pyautogui。都是再文件夹目录下运行setup.py即可
  • linux python3安装pyautogui

    2019-04-24 11:28:12
    linux桌面程序安装python3、安装pyautogui依赖得源码包(pip安装慢yum等网络源不好使得情况)
  • PyAutoGUI是一个简单易用,跨平台的可以模拟键盘鼠标进行自动操作的python库.PyAutoGUI中文文档:  《PyAutoGUI——让所有GUI都自动化》 https://muxuezi.github.io/posts/doc-pyautogui.html 标签:...
  • pyautogui和tkinter实现的录制鼠标操作,并定时还原操作的软件,可实现单击双击拖动,等鼠标操作的实时录制,执行
  • pyautogui是一个可以控制鼠标和键盘的python库,类似的还有pywin32。这篇文章主要介绍了python中的pyautogui实现鼠标键盘控制功能,需要的朋友可以参考下
  • 使用PyAutoGui使用Python自动化MS团队 您是否使用MS Teams? 由于这种大流行情况,这些视频会议应用程序的使用也有所增加,并且如今大多数班级,讲座和会议都是在团队中进行的。 免责声明: 该代码仅用于教育目的...
  • pyautogui.按键案例.py

    2021-07-13 13:48:40
    pyautogui.按键案例
  • Pyautogui(英文版)

    2021-02-03 13:31:35
    Pyautogui(英文版)
  • 模板匹配使用pyautogui进行图片定位,并单击,用协程的方式运行,占用资源低,效率中等,代码简易首先需要安装一些组件来支持: 点安装gevent 点安装pyautogui pip安装opencv-python代码很短,注释很清晰,可以用来...
  • 本文实例讲述了Python使用pyautogui模块实现自动化鼠标和键盘操作。分享给大家供大家参考,具体如下: 一、pyautogui模块简要说明 ## 使用 pyautogui 模块相关函数,可以模拟鼠标及键盘操作, 完整说明文档见: ...
  • 主要介绍了python自动脚本的pyautogui入门学习,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • pyautogui-mouse-move-example:使用pyautogui移动鼠标的示例
  • PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样。但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能。下面让我为大家介绍一下吧。 安装 从pip安装即可。...
  • 打开桌面pyautogui-python 如何进入桌面窗口(最小化python模块pyautogui中的所有其他窗口) 出于未知原因,如果要使用pyautogui,请单击以进入桌面pyautogui,等待此任务,直到完成所有脚本。 我发现如果将其分为两...
  • 本文简单介绍如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 因此执行以下命令进行安装 # pyautogui模块依赖image模块,没有image会报ImportError: No module...
  • 本文简单介绍如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 因此执行以下命令进行安装 # pyautogui模块依赖image模块,没有image会报ImportError: No module ...
  • 主要介绍了pyautogui自动化控制鼠标和键盘操作的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • pyautogui英文文档

    2019-02-04 14:27:59
    PyAutoGUI is a Python module for programmatically controlling the mouse and keyboard.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,169
精华内容 2,467
关键字:

PyAutoGUI