返回顶部
首页 > 资讯 > 后端开发 > Python >Python自动操作GUI神器PyAutoGUI怎么使用
  • 861
分享到

Python自动操作GUI神器PyAutoGUI怎么使用

2023-07-06 00:07:27 861人浏览 安东尼

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

摘要

本篇内容介绍了“python自动操作GUI神器PyAutoGUI怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!GUI 控制神器我们今

本篇内容介绍了“python自动操作GUI神器PyAutoGUI怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

GUI 控制神器

我们今天的主人公是 pyautogui,pyautogui 是一个纯 Python 的 GUI 自动化工具,通过它可以让程序自动控制鼠标和键盘的一系列操作来达到自动化测试的目的。

这个模块的安装也是老一套:

  • pip3 install pyautogui

安装好了就可以直接使用了。

鼠标操作

鼠标移动

桌面操作最基本的就是鼠标操作了,我们可以控制鼠标的移动:

# 移动鼠标pyautogui.moveTo(200,400,duration=2)pyautogui.moveRel(200,500,duration=2)

整个桌面是以左上角为坐标轴的原点,所有的操作都以这个原点,来确定操作位置。

第一行是将鼠标移动到指定的像素(200,400)位置,第二行代码是将鼠标按照当前点向右移动200px,向下移动400px这个方向移动。

两行代码中都有一个共同的参数 duration,这个参数表示移动时间,即在指定时间内完成移动操作,单位是秒。

运行这两行代码,观察屏幕鼠标的变化,是不是很神奇?

我们还可以获取鼠标位置:

print(pyautogui.position())

这个很好理解,就是获取鼠标在当前屏幕中的坐标位置,运行这行代码,我们会得到诸如下面的信息:

  • Point(x=400, y=900)

鼠标点击

通常,我们的鼠标有左右两个按键,高级点的鼠标中间还有个按键。

我的鼠标只有两个按键,中间没有按键,唉~

pyautogui针对这三个按键操作都有相应的处理:

# 鼠标点击,默认左键pyautogui.click(100,100)# 单击左键pyautogui.click(100,100,button='left')# 单击右键pyautogui.click(100,300,button='right')# 单击中间pyautogui.click(100,300,button='middle')

鼠标点击,如果不指定 button 参数,默认是点击左键,前面两个参数就是点击坐标的位置。

运行这段代码,看看你的桌面会发生什么?

鼠标除了点击操作,还有双击操作:

# 双击左键pyautogui.doubleClick(10,10)# 双击右键pyautogui.rightClick(10,10)# 双击中键pyautogui.middleClick(10,10)

操作函数也很简单,相信大家一眼就能看明白,如果一眼看不明白,请多看几眼!

熟悉前端的小伙伴可能会马上联想到,鼠标操作有按下和释放的过程,我们屏幕操作也有对应的控制:

# 鼠标按下pyautogui.mouseDown()# 鼠标释放pyautogui.mouseUp()
鼠标拖动

我们可以控制鼠标拖动到指定坐标位置,并且设置操作时间:

pyautogui.dragTo(100,300,duration=1)

这个运行效果和前面移动类似。

根据前面移动的经验,我们也有按照方向拖动鼠标:

pyautogui.dragRel(100,300,duration=4)
鼠标滚动

在桌面操作中,我们有时候需要滚动鼠标到达向上或者向下的位置,这时候我们可以使用 scroll 这个函数来控制:

pyautogui.scroll(30000)

参数是整数,表示向上或向下滚动多少个单位,这个单位根据不同的操作系统可能不一样。如果向上滚动,传入正整数,向下滚动传入负整数。

屏幕处理

获取屏幕截图

我们先来假设一个场景:我现在要在屏幕上找到一个红色的点,你会怎么做?通常的做法是拿到这个红色点的颜色值,然后再对屏幕上的点逐个进行比较,直到找到为止。

pyautogui 为我们这个操作场景提供了支持,分别有三个函数可以完成这三件事情。

im = pyautogui.screenshot()im.save('screenshot.png')rgb = im.getpixel((100, 500))print(rgb)match = pyautogui.pixelMatchesColor(500,500,(12,120,400))print(match)

第一个是获取屏幕截图函数,它可以返回一个 Pillow 的 image 对象; 第二个是获取屏幕截图中指定坐标点的颜色,返回 rgb 颜色值;第三个是将指定坐标点的颜色和目标的颜色进行比对,返回布尔值。

我们再来升级一下需求:

我现在要在屏幕上找到 edge 浏览器的图标,你会怎么做?

通常的做法是先知道 edge 浏览器的图标长啥样,是绿色还是蓝色,是胖的还是瘦的,对吧?然后再在屏幕上去进行图标的匹配,直到找到一个图标跟我们目标图标一样,就得到了结果。

于是,我们的代码如下:

# 图像识别(一个)oneLocation = pyautogui.locateOnScreen('1.png')print(oneLocation)# 图像识别(多个)allLocation = pyautogui.locateAllOnScreen('1.png')print(list(allLocation))

你可以在桌面上将某个应用的图标截取下来,保存为图片,然后使用上面几行代码来识别,识别成功,你会返回类似下面的结果:

Box(left=20, top=89, width=33, height=34)[Box(left=20, top=89, width=33, height=34)]

这就是图片在桌面的位置,如果找不到图片,就会返回 None。

键盘输入

键盘函数

键盘输入有下面几个常用的函数:

  • keyDown():模拟按键按下

  • keyUP():模拟按键松开

  • press():模拟一次按键过程,即 keyDown 和 keyUP 的组合

  • typewrite():模拟键盘输出内容

举个例子,大家平时输入感叹号(!)是怎么操作键盘的?

按住 shift 按键,然后再按住 1 按键,就可以了。用 pyautogui 控制就是:

pyautogui.keyDown('shift')pyautogui.press('1')pyautogui.keyUp('shift')

运行上面的代码,如果你的鼠标是放在编辑框中,你会得到一个感叹号!

我们还可以直接输出内容:

pyautogui.typewrite('python', 1)

第一个参数是输出的内容,第二个参数是间隔时间,单位是秒。

运行上面代码,你的编辑器里面就会每隔1秒钟按顺序输出 python 的6个字母。

特殊符号

有时我们需要输入键盘的一些特殊的符号按键,比如 换行、方向键等,这些有相对应的键盘字符串表示:

pyautogui.typewrite(['p','y','t','h','o','n','enter'])

运行上面代码,编辑器里面就会输出 python 之后换行。

其他特殊按键对应的字符串请参考官方说明。

快捷键

如果我要复制一个内容,大部分情况下会使用快键键 ctrl + c,按照上面讲的,我们应该这么实现:

pyautogui.keyDown('ctrl')pyautogui.keyDown('c')pyautogui.keyUp('c')pyautogui.keyUp('ctrl')

这样写起来很麻烦,而且需要掌控按键的按下和释放的顺序。

pyautogui 为我们提供了一个快捷的函数:

pyautogui.hoTKEy('ctrl','c')

实现的效果和上面的4行代码相同。

信息框

当你在模拟一个桌面操作的时候,如果有分支操作需要根据实际情况来判断,你是不是需要有一个地方可以让你选择走哪个分支?

pyautogui 贴心地考虑到了这种情况,你可以通过弹出一个选择框来中断当前的操作,选择操作分支。

way = pyautogui.confirm('领导,该走哪条路?', buttons=['农村路', '水路', '陆路'])print(way)

这里就是我们 html 页面的 confirm 选择框,选择了选项之后,我们可以获取到选择的选项,然后基于这个选项做判断,进入相应的操作分支。

除了选择确认框之外,还有其他一些提示信息框:

# 警告框alert = pyautogui.alert(text='警告!敌军来袭!', title='警告框')print(alert)# 密码框passWord = pyautogui.password('请输入密码')print(password)# 普通输入框input = pyautogui.prompt('请输入指令:')print(input)

“Python自动操作GUI神器PyAutoGUI怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python自动操作GUI神器PyAutoGUI怎么使用

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

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

猜你喜欢
  • Python自动操作GUI神器PyAutoGUI怎么使用
    本篇内容介绍了“Python自动操作GUI神器PyAutoGUI怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!GUI 控制神器我们今...
    99+
    2023-07-06
  • Python自动操作 GUI 神器——PyAutoGUI
    我们以前讲过怎样使用 Python 在浏览器中实现页面自动化操作,不管用哪种方式实现,都是通过定位页面中的元素来进行相应的操作。今天我们来聊一聊如何在桌面实现自动化操作。与浏览器页面自动化操作类似,桌面自动化操作也是需要定位鼠标在桌面的位置...
    99+
    2023-05-14
    Python GUI PyAutoGUI
  • 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的相关问题,桌面自动化操作是通过定位鼠标在桌面的位置,然后根据定位的位置执行对应的操作,下面一起来看一下,希望对大家有帮助。【相关推荐:Pyth...
    99+
    2022-07-06
    python
  • python自动化神器:pyautogui
    详情可访问:pyautogui官网地址,关注本专栏,学习自动发消息给对象 文章目录 一、pyautogui是什么?二、使用步骤1.安装和引入库2.基本操作(1)鼠标控制(2)键盘控制(3...
    99+
    2023-09-17
    python 自动化
  • python 利用PyAutoGUI快速构建自动化操作脚本
    目录一、背景二、自动化的方案三、思路和知识点四、操作步骤4.1 初识 PyAutoGUI4.2 坐标系4.3 点击4.4 输入4.5 汉字输入4.6 集成起来五、数据源六、总结一、背景 大家好,我是安果! 我们经常...
    99+
    2022-06-02
    python PyAutoGUI python 自动化操作
  • python操作Excel神器openpyxl怎么使用
    Excel xlsxxlsx 是 Microsoft Excel 使用的开放 XML 电子表格文件格式的文件扩展名。 xlsm 文件支持宏。 xlsx 是专有的二进制格式,而 xlsx 是基于 Office Open XML 格式的。$ s...
    99+
    2023-05-14
    Python Excel openpyxl
  • python操作Excel神器openpyxl如何使用
    今天小编给大家分享一下python操作Excel神器openpyxl如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。E...
    99+
    2023-07-06
  • 使用python怎么实现mysql自动增删分区操作
    本篇文章给大家分享的是有关使用python怎么实现mysql自动增删分区操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。连接mysql#!/usr/bin/python#-*...
    99+
    2023-06-14
  • Python 自动化常用操作及glob使用大全
    目录1. OS模块2. shutil模块3. globa模块glob的几种用法本文摘自微信公众号 GitPython:十个 Python 自动化常用操作。如有侵权,联系必删。 1. ...
    99+
    2024-04-02
  • 怎么使用SAP Intelligent Robotic Process Automation自动操作Excel
    怎么使用SAP Intelligent Robotic Process Automation自动操作Excel,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。除了...
    99+
    2023-06-04
  • 怎么用PyTorch的einops张量操作神器
    这篇文章主要介绍“怎么用PyTorch的einops张量操作神器”,在日常操作中,相信很多人在怎么用PyTorch的einops张量操作神器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用PyTorch的...
    99+
    2023-06-25
  • 怎么在python中利用Appium自动化操作微信
    本篇文章为大家展示了怎么在python中利用Appium自动化操作微信,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scra...
    99+
    2023-06-14
  • Python使用xlrd和xlwt实现自动化操作Excel
    目录一、前言介绍二、安装三、xlrd常用操作1、打开Excel2、查看工作簿中所有sheet 3、选择一个工作表4、获取表格的行数、列数5、获取整行和整列的值6、通过循环读...
    99+
    2024-04-02
  • 怎么使用Python构建GUI
    本篇内容介绍了“怎么使用Python构建GUI”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Streamlit我喜欢使用的包是 Stream...
    99+
    2023-07-06
  • 使用Python怎么操作Excel实现自动分组合并单元格
    这篇文章主要介绍了使用Python怎么操作Excel实现自动分组合并单元格,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!df.to_excel('test.xlsx',index=Fal...
    99+
    2023-06-06
  • 使用Python自动化Microsoft Excel和Word的操作方法
    将Excel与Word集成,无缝生成自动报告 毫无疑问,微软的Excel和Word是公司和非公司领域使用最广泛的两款软件。它们实际上是“工作”的同义词。通常情况下,每一周我们都会将两...
    99+
    2024-04-02
  • 怎样用Python实现自动化操作Android手机
    本篇文章给大家分享的是有关怎样用Python实现自动化操作Android手机,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、【必须】安装adb工具adb全称Android D...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作