自学内容网 自学内容网

「Py」模块篇 之 PyAutoGUI库自动化图形用户界面库

在这里插入图片描述

✨博客主页
何曾参静谧的博客
📌文章专栏
「Py」Python程序设计
📚全部专栏
「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合
「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发
「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制开发
「Py」Python程序设计「Math」探秘数学世界「PK」Parasolid函数说明

PyAutoGUI使用教程

PyAutoGUI是一个用于自动化图形用户界面(GUI)操作的Python库,可以模拟鼠标移动、点击、拖拽以及键盘按键输入等操作。此外,它还提供了截屏、消息弹窗和延时控制等功能,适用于各种GUI任务的自动化。以下是一篇关于PyAutoGUI的详细使用教程。

一、安装PyAutoGUI

PyAutoGUI可以通过pip进行安装。在命令行或终端中运行以下命令:

pip install pyautogui

在Windows系统上,PyAutoGUI没有任何依赖,可以直接使用。而在macOS和Linux系统上,则需要安装相应的依赖库。

  • 对于macOS,需要安装pyobjc-core和pyobjc模块:
pip install pyobjc-core
pip install pyobjc
pip install pyautogui
  • 对于Linux,需要安装python3-xlib(或python-xlib对于Python 2)和Pillow模块:
sudo apt-get install python3-xlib
pip install pillow
pip install pyautogui

二、基本功能

  1. 获取鼠标当前坐标

    import pyautogui
    currentMouseX, currentMouseY = pyautogui.position()
    print(f"Current mouse position: ({currentMouseX}, {currentMouseY})")
    
  2. 获取屏幕尺寸

    screenWidth, screenHeight = pyautogui.size()
    print(f"Screen size: ({screenWidth}x{screenHeight})")
    
  3. 判断指定坐标是否在屏幕内

    onScreen = pyautogui.onScreen(100, 100)
    print(f"Is the coordinate (100, 100) on the screen? {onScreen}")
    
  4. 移动鼠标

    • 在指定时间内将鼠标移动到指定坐标:

      pyautogui.moveTo(100, 150, duration=1)  # 1秒内移动到(100, 150)
      
    • 相对于当前位置移动鼠标:

      pyautogui.moveRel(50, 0, duration=0.5)  # 0.5秒内向右移动50像素
      
  5. 点击鼠标

    • 在当前位置点击鼠标左键:

      pyautogui.click()
      
    • 在指定位置点击鼠标左键:

      pyautogui.click(x=100, y=150)
      
    • 右键点击和双击:

      pyautogui.rightClick(x=100, y=150)
      pyautogui.doubleClick(x=100, y=150)
      
  6. 滚动鼠标滚轮

    pyautogui.scroll(200)  # 向上滚动200单位
    pyautogui.scroll(-200)  # 向下滚动200单位
    
  7. 键盘输入

    • 输入字符串:

      pyautogui.typewrite('Hello, world!', interval=0.1)  # 每个字符之间间隔0.1秒
      
    • 输入单个按键或组合键:

      pyautogui.press('enter')
      pyautogui.hotkey('ctrl', 'c')  # 复制操作
      

三、高级功能

  1. 故障保险(Fail-Safe)

    当启用故障保险模式时,如果将鼠标移动到屏幕左上角,PyAutoGUI将引发一个pyautogui.FailSafeException异常,从而中断程序。这是为了防止程序失控。

    pyautogui.FAILSAFE = True  # 启用故障保险模式(默认)
    # 如果需要禁用,则设置为False
    # pyautogui.FAILSAFE = False
    
  2. 全局延迟(PAUSE)

    通过设置pyautogui.PAUSE属性,可以为所有的PyAutoGUI函数增加延迟。这对于减缓自动化操作的速度、提高稳定性很有帮助。

    pyautogui.PAUSE = 1  # 设置全局延迟为1秒
    
  3. 截屏与图像识别

    PyAutoGUI使用Pillow/PIL库来处理图像。可以使用screenshot()函数进行截屏,并使用locateOnScreen()locateAllOnScreen()函数在屏幕上查找图像的位置。

    • 截屏:

      screenshot = pyautogui.screenshot()
      screenshot.save('screenshot.png')
      
    • 查找图像位置:

      button_pos = pyautogui.locateOnScreen('button.png')
      if button_pos:
          print(f"Button found at: {button_pos}")
          pyautogui.click(button_pos)
      else:
          print("Button not found.")
      
    • 查找所有匹配图像的位置:

      all_buttons = list(pyautogui.locateAllOnScreen('button.png'))
      for button_pos in all_buttons:
          pyautogui.click(button_pos)
      

四、注意事项

  1. 坐标系统

    PyAutoGUI的坐标系统以屏幕左上角为原点(0, 0),x轴向右增加,y轴向下增加。在多屏幕环境下,PyAutoGUI仅支持主屏幕的操作。

  2. 键盘输入焦点

    PyAutoGUI的键盘输入操作是基于当前焦点窗口的。在执行键盘输入操作前,请确保目标窗口处于焦点状态。可以使用pyautogui.click(x, y)先将鼠标点击到目标窗口。

  3. 避免干扰

    在自动化脚本执行期间,避免手动移动鼠标或进行键盘输入,以免干扰脚本的执行。

  4. 性能优化

    对于涉及到延迟的操作,可以使用time.sleep()函数来动态调整延迟时间,而不是仅依赖pyautogui.PAUSE属性。此外,在使用locateOnScreen()locateAllOnScreen()时,尽量缩小截屏区域,只包含关键元素,以提高查找速度。

通过以上教程的学习和实践,您可以掌握PyAutoGUI的基本和高级功能,并利用它来实现各种自动化任务。


在这里插入图片描述


原文地址:https://blog.csdn.net/qq_49443542/article/details/143765533

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!