• Python 编程快速上手 第十八章 用 GUI 自动化控制键盘和鼠标


    前言

    这一章节讲述了如何实现 GUI 自动化,首先讲了一些处理异常状况的方法,然后是关于 GUI 自动化的内容,主要有三个部分:

    1. 控制鼠标
    2. 图像识别
    3. 控制键盘

    下面引用一段话:

    请将 GUI 自动化看成对一个机械臂编程。你可以对机械臂编程,让它敲键盘或移动鼠标。对于涉及许多无脑点击或填表的任务。这种技术特别有用。

    处理异常的办法

    方法一:通过注销关闭所有程序:

    Windows/Linux:Ctrl+Alt+Del
    Mac OS:cmd+Shift+Option+Q

    方法二:设置 pyautogui 的暂停

    格式:pyautogui.PAUSE = 1.5
    功能:将该变量设置为要暂停的秒数,在每次进行完函数调用之后暂停这段秒数的时间

    方法三:pyautogui 自动防故障功能:

    格式:pyautogui. FAILSAFE = True
    功能:将鼠标移到屏幕的左上角,将触发pyautogui.FailSafeException异常。
    禁用:可以让 pyautogui. FAILSAFE = False, 禁止使用这项功能。

    控制鼠标

    预备知识:

    • 屏幕的坐标表示法。
    • 可通过 pyautogui.size() 返回计算机的屏幕分辨率。
    • PyAutoGUI 函数中,有一个 duirantion 关键字,可以指定为函数的可选参数,表示其进行动作的时间。

    移动鼠标

    格式:

    绝对位置:pyautogui.moveTo(x, y)
    相对于目前的位置:pyautogui.moveRel(x, y)

    其他:

    获得鼠标绝对位置:格式:pyautogui.position()

    点击鼠标

    格式:

    pyautogui.click(x, y, button ='left')

    功能:

    使用 button 的参数模拟鼠标点击 (x,y) 处,button 参数可为 'left','middle' 和 'right', 是一个可选值,默认为左键。

    其他:

    • 按下鼠标按键:pyautogui.mouseDown()
    • 松开鼠标按键:pyautogui.mouseUp()
    • 双击鼠标左键:pyautogui.doubleClick()
    • 双击鼠标右键:pyautogui.rightClick()
    • 双击鼠标中键:pyautogui.middleClick()

    拖动鼠标

    格式:

    绝对坐标拖动:pyautogui.dragTo(x, y)
    相对当前坐标拖动:pyautogui.dragRel(x, y)

    功能:

    进行拖动,(另外作者建议在 Mac OS 上,最好添加 duration 参数)

    滚动鼠标

    格式:

    scroll(200)

    功能:

    在相对的状态下,传递正数向上滚动,传递负数向下滚动。

    图像识别

    处理屏幕

    获得屏幕快照:

    格式:im = pyautogui.screenshot()
    功能:返回一个整个屏幕的 Pillow Image 对象。

    分析屏幕快照:

    格式:pyautogui.pixelMatchesColor(50, 200, (130, 135, 144))
    功能:接受一个坐标值和一个含有三个整数的 RGB 元组,然后进行判断颜色是否匹配,最后返回一个 True / False.

    识别 & 定位

    1. 获得一小块区域的屏幕快照

    2. 使用 locateOnscreen() 这个方法进行定位

    格式: pyautogui.locateOnscreen('submit.png')
    功能:接受屏幕快照,返回屏幕上发现该图像的左上角坐标以及图像的宽度、高度。

    控制键盘

    键盘输入

    格式:pyautogui.typewrite('Hello world!',0.25)

    功能:在文本输入框内的焦点处,自动输入第一个参数的字符串,第二个参数每个字母之间停留的时间间隔,是可选参数。

    其他

    • 键入给定键字符串:除了字符串,还可以传递键盘键字符串。如:'enter','up','tab' 等等。格式:pyautogui.typewrite(['left','right','enter'])
    • 按下和释放键盘:pyautogui.keyDown('shift'), pyautogui.keyUp('4')
    • 热键组合:pyautogui.hotkey(['ctrl','c']) 功能:可执行组合键





  • 相关阅读:
    【打印】windows打印控件,Lodop.js介绍
    【MySQL】MySQL查询数据库各表的行数
    【MySQL】MySQL中查询出数据表中存在重复的值list
    【php】php5.0以上,instanceof 用法
    日期转换:Cannot format given Object as a Date (SimpleDateFormat的parse和format)
    Groovy 正则表达式 匹配点号
    什么是开发框架
    SoapUI 增大使用内存
    Groovy API link
    Groovy 跳出each循环
  • 原文地址:https://www.cnblogs.com/FBsharl/p/10325086.html
Copyright © 2020-2023  润新知