返回顶部
首页 > 资讯 > 后端开发 > Python >python 利用PyAutoGUI快速构建自动化操作脚本
  • 634
分享到

python 利用PyAutoGUI快速构建自动化操作脚本

pythonPyAutoGUIpython自动化操作 2022-06-02 22:06:09 634人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一、背景二、自动化的方案三、思路和知识点四、操作步骤4.1 初识 PyAutoGUI4.2 坐标系4.3 点击4.4 输入4.5 汉字输入4.6 集成起来五、数据源六、总结一、背景 大家好,我是安果! 我们经常

目录
  • 一、背景
  • 二、自动化的方案
  • 三、思路和知识点
  • 四、操作步骤
    • 4.1 初识 PyAutoGUI
    • 4.2 坐标系
    • 4.3 点击
    • 4.4 输入
    • 4.5 汉字输入
    • 4.6 集成起来
  • 五、数据源
    • 六、总结

      一、背景

      大家好,我是安果!

      我们经常遇到需要进行大量重复操作的时候,比如:网页上填表,对 WEB 版本 OA 进行操作,自动化测试或者给新系统首次添加数据等

      这些操作的特点往往是:数据同构,大多是已经有了的结构化数据;操作比较呆板,都是同一个流程的点击、输入;数据量大,极大消耗操作人精力

      那么能不能自动化呢?

      二、自动化的方案

      如果你在 web 上进行操作, pythonselenium 可以满足要求。如果需要对 GUI 界面进行操作,你恐怕得试验下“按键精灵”能不能满足要求。对新系统添加初始数据,sql 导出导入是最高效的方式,不过可能需要进行一些较复杂的处理。

      曾经多次遇到要求一条条手动输入旧数据的系统升级活动。

      但以上都存在一些问题, Selenium 比较复杂,按键精灵功能上不太完善, SQL 需要一定的知识基础

      这里推荐一个更好的解决方案:PyAutoGUI 

      其实 PyAutoGUI 最主要好处就是比较简单,应急使用的话可以很快构建一个可用的自动化操作脚本。毕竟,数据处理任务本来就比较急迫,没有时间使用复杂知识,来构建一个完善的脚本

      三、思路和知识点

      现在来说一下基本思路与相关知识点

      • PyAutoGUI 就是模拟键盘、鼠标在界面上进行操作。
      • 这里只使用它的 click 功能来模拟鼠标点击。
      • 为了获取需要点击的位置,设计了一个鼠标坐标获取的程序。
      • ASCII 码的输入比较简单。再解决汉字输入问题,就使得系统基本可用了。

      本文以在 web 界面批量新增数据记录为例,讲解如何自动化操作。这个例子只是演示之用,非常简单,大家自行理解、迁移。

      四、操作步骤

      4.1 初识 PyAutoGUI

      简单地说, PyAutoGUI 就是模拟键盘、鼠标在界面上进行操作的包。安装时直接使用如下语句:pip install pyautogui即可。

      编写一个简单的测试程序:

      
      import pyautogui as pag
      
      pag.PAUSE = 1.5
      pag.click(63,191) 

      以上程序导入库,定义了每步骤的暂停时间 1.5 秒(用来留给操作时间),然后在屏幕左起 63 像素,上起 191 像素这个点上点击了鼠标。

      4.2 坐标系

      PyAutoGUI 默认的坐标系从屏幕左上角开始,x 轴向右增大,y 轴向下增大。所以显示器上每个点都有自己的位置。

      引申一下,当知道界面上每个按钮的位置时,点击这些点,就是执行相应的操作了。

      当然,这一切的前提是界面不变。大多数应用的界面、按钮位置不会变来变去。如果你有这方面需求,可以参考下 locateOnScreen() 函数。这个函数根据你提供的图片,在屏幕上找到像素匹配的地方。这样就不怕按钮动来动去了。

      为了获取屏幕的坐标系,写了一个简单的程序,用来获取鼠标在屏幕上的坐标。大家可以自行下载运行。

      
      import pyautogui as pag 
      import os 
      
      try:
          while True:
              os.system('cls')
              a = '%4d,%4d'%pag.position()
              print(a)
      except Exception as e:
          print(e) 

      运行以上程序,移动鼠标到各个按钮上,就可以看到相应的坐标。

      4.3 点击

      PyAutoGUI 的点击很简单:

      
      pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0)

      其中x,y是坐标,clicks 是点击次数,interval 是点击间隔,button 指代三个鼠标按钮的哪一个,duiation 是点击之间的间隔。

      写如下程序,来进行任务、时间和新建按钮之间的跳转。

      
      pag.click(63,191)
      pag.click(328,191)
      pag.click(384,461)
      pag.click(374,191)

      4.4 输入

      输入 ASCII 字符和键盘击键、热键分别如下:

      • 输入 ASCII 字符串是typewrite(message='test message.',interval=0.5)
      • 退出键是press('esc')
      • 按下是KeyDown('ctrl')
      • 松开是KeyUp('ctrl')
      • 组合键是hoTKEy('ctrl','v')。

      至于汉字,稍微复杂点。

      4.5 汉字输入

      涉及汉字,无法用 ASCII 方案解决,需要导入包 pyperclip ,这个包封装了系统剪贴板,大家知道怎么回事了吧。

      
      import pyperclip 
      
      #以下读入内容,就是把内容存入剪贴板。
      pyperclip.copy('需要输入的汉字')
      #以下输出内容,就是粘贴。
      pag.hotkey('ctrl','v')

      其实就是用 pyperclip 模拟拷贝,用热键 Ctrl+v 粘贴,实现了非 ASCII 字符的输入。

      4.6 集成起来

      下面,把整个程序集成起来看:

      
      import pyautogui as pag
      import pyperclip
      
      pag.PAUSE = 1.5
      pag.FaiLSAFE = True
      
      to = ['测试任务1','测试任务2','测试任务3','测试任务4','测试任务5',\
            '测试任务6','测试任务7','测试任务8','测试任务9','测试任务10']
      
      for t in to:
          pag.click(63,191)
          pyperclip.copy(t)
          pag.hotkey('ctrl','v')
          pag.click(328,191)
          pag.click(384,461)
          pag.click(374,191)

      以上程序,根据 to 列表内容,把操作分解为点击和粘贴,实现了自动化操作的目的。大部分编码都很好理解,能跟鼠标操作一一对应起来。可能存在难度的是数据源的问题,总不能把所有数据都写入程序吧?

      五、数据源

      相较于复杂的现实数据源,最好的方式就是把数据转成 csv 文件。这样许多 excel 都可以另存成这个文件,其本身又是基于文本的,可读可写,比较方便。其他诸如 SQL 数据库、 XML 数据也可以导出转换为 csv 文件。

      假设现在有了 csv 格式数据源 data.csv ,需要这样操作。

      
      to = []
      
      with open('data.csv')as f:
          lines = f.readlines()
      
      for line in lines:
          to.append(tuple(line.split(',')))

      以上代码比较简单,把 csv 中存成的数据存储到 to 这个数组里,每行数据都是一个元组,调用的时候,如4.6部分代码所示,使用 for 循环加上元组下标即可。

      六、总结

      本文使用 PyAutoGUI 包,对各种鼠标点击、输入之类的机械重复操作进行自动执行,可大幅提高工作效率。这里只使用了 click 功能和 pyperclip 包的 copy 功能。主要是为了简化编程,让大家在紧张和繁琐的操作中,快速编写一个自动化执行的小脚本。

      以上就是Python 利用PyAutoGUI快速构建自动化操作脚本的详细内容,更多关于python 用PyAutoGUI构建自动化操作脚本的资料请关注编程网其它相关文章!

      --结束END--

      本文标题: python 利用PyAutoGUI快速构建自动化操作脚本

      本文链接: https://lsjlt.com/news/10818.html(转载时请注明来源链接)

      有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

      猜你喜欢
      • python 利用PyAutoGUI快速构建自动化操作脚本
        目录一、背景二、自动化的方案三、思路和知识点四、操作步骤4.1 初识 PyAutoGUI4.2 坐标系4.3 点击4.4 输入4.5 汉字输入4.6 集成起来五、数据源六、总结一、背景 大家好,我是安果! 我们经常...
        99+
        2022-06-02
        python PyAutoGUI python 自动化操作
      • Python脚本操作实现快速自动化任务的技巧与方法
        Python脚本操作实现快速自动化任务的技巧与方法导言:随着计算机技术的发展,自动化已经成为许多行业中的必备技能。Python作为一种简单易学且功能强大的编程语言,成为自动化任务的首选工具之一。本文将介绍一些Python脚本操作实现快速自动...
        99+
        2023-10-22
        自动化 Python 脚本
      • 使用Python快速搭建接口自动化测试脚本实战总结
        ​测试需求介绍通常,在我们的项目中,我们的接口测试需求一般都是构造不同的请求数据,然后发送请求到接口,拿到接口返回后,对返回的字段进行提取和校验,最后将结果存放在excel表格中方便查阅。接口一般是http或https请求,发送的结构一般是...
        99+
        2023-05-14
        数据 Python 自动化测试
      • Shell脚本构建Docker 半自动化编译打包发布应用操作
        Docker 发布的方式为实现DevOps(自动化运维,需要配置 代码管理工具如Git的hook来实现提交编译、打包、发布等一系列事件控制)提供了诸多方便,辅助于Shell脚本可以很...
        99+
        2024-04-02
      • Python自动操作GUI之PyAutoGUI怎么使用
        本篇内容主要讲解“Python自动操作GUI之PyAutoGUI怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python自动操作GUI之PyAutoGUI怎么使用”吧!GUI控制神器我...
        99+
        2023-07-02
      • Python自动操作神器PyAutoGUI如何使用
        今天小编给大家分享一下Python自动操作神器PyAutoGUI如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。GUI...
        99+
        2023-07-02
      • Python自动操作神器PyAutoGUI的使用教程
        目录GUI 控制神器鼠标操作鼠标移动鼠标点击鼠标拖动鼠标滚动屏幕处理获取屏幕截图键盘输入键盘函数特殊符号快捷键信息框总结我们以前讲过怎样使用 Python 在浏览器中实现页面自动化操...
        99+
        2024-04-02
      • Python自动操作GUI神器PyAutoGUI怎么使用
        本篇内容介绍了“Python自动操作GUI神器PyAutoGUI怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!GUI 控制神器我们今...
        99+
        2023-07-06
      • element怎么用脚本自动化构建新组件
        这篇文章主要为大家展示了“element怎么用脚本自动化构建新组件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“element怎么用脚本自动化构建新组件”这篇文章吧。element-ui的自动化...
        99+
        2023-06-22
      • shell脚本快速创建格式化磁盘与详细操作步骤
        这篇文章给大家介绍如何利用shell脚本实现对一个磁盘进行分区格式化挂载,具体内容如下所示: 查看当前磁盘分区状况 查看当前磁盘的一个分区状况,使用命令:fdisk -l fdisk -l //查看磁盘信息 lsbl...
        99+
        2022-06-04
        shell脚本创建格式化磁盘 shell格式化磁盘 shell脚本创建磁盘
      • Python利用Rows快速操作csv文件
        目录1.准备2.基本使用3.命令行工具Rows 是一个专门用于操作表格的第三方Python模块。 只要通过 Rows 读取 csv 文件,她就能生成可以被计算的 Python 对象。...
        99+
        2024-04-02
      • Python键盘监听:实现快捷操作和自动化脚本(监听组合键
        前言 本文主要介绍一下使用Python进行事件监听功能,以实现一些特有的操作。本文旨在介绍如何实现这一功能。 笔者根据一些需求写了一个小工具,流程和功能如下图所示(实际功能有更多): 该工具...
        99+
        2023-09-13
        python 计算机外设 自动化 键盘监听
      • Windows自动执行python脚本操作步骤
        目录运行Python脚本:.bat文件python脚本bat运行经验定时在Windows中触发.bat文件上一篇自动在Windows中运行Python脚本并定时触发功能实现传送门链接...
        99+
        2024-04-02
      • 利用 Monkey 命令操作屏幕快速滑动
        一、Monkey测试简介 Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会...
        99+
        2022-06-04
        屏幕 命令 快速
      • element用脚本自动化构建新组件的实现示例
        目录背景element-ui的自动化构建是怎么做的makefilenew.jsfile-save引用资源文件的修改fs.createWriteStream总结背景 在公司的项目中,...
        99+
        2024-04-02
      • 利用Python实现自动工作汇报的脚本分享
        目录一、写在开头二、需要什么三、模型训练四、数据处理和传输五、金融模型六、代码七、MIME八、SMTP九、放在一起一、写在开头 哈喽兄弟们 之前经常编写Python脚本来进行数据处理...
        99+
        2024-04-02
      • 如何利用python脚本自动部署k8s
        目录一、准备 二、编辑脚本1、k8s.sh2、k8s_install.py三、配置ssh免密四、下载python3和git五、执行脚本六、成功七、总结一、准备 通...
        99+
        2024-04-02
      • 怎么利用python脚本自动部署k8s
        这篇文章主要为大家展示了“怎么利用python脚本自动部署k8s”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用python脚本自动部署k8s”这篇文章吧。一、准备通过之前在Ubuntu1...
        99+
        2023-06-20
      • 利用Python实现FGO自动战斗脚本,
          Fate/Grand Order(非的肝不过欧的)作为索尼为了拯救自己不倒闭而开发的面向月厨的骗氪养成抽卡爆肝游戏,居然没有像隔壁《阴阳师》的自动战斗系统(看看别人现在都自带脚本了)。毕竟是懒得肝,就不妨写一个脚本来肝算了,省时省力...
        99+
        2023-01-30
        脚本 Python FGO
      • PHP Linux脚本操作实例:实现自动化部署
        近年来,随着软件行业的快速发展,部署工作在开发流程中变得愈发重要。为了提高效率,许多开发团队都开始采用自动化部署来简化繁琐的部署过程。在这其中,PHP语言在Linux环境下的脚本操作成为了一种常见的实现方式。本文将介绍如何使用PHP脚本在L...
        99+
        2023-10-21
        Linux PHP 自动化部署
      软考高级职称资格查询
      编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
      • 官方手机版

      • 微信公众号

      • 商务合作