Python库-PyAutoGUI

news2024/11/16 0:02:36

pyautogui是一个Python库,可以自动控制键盘和鼠标,非常适合进行自动化任务。它可以用于各种场景,比如自动化测试、数据录入任务,甚至是简单的游戏机器人。下面是一个关于pyautogui的入门教程,包括它的安装、基本使用方法以及一些高级功能的介绍。

安装pyautogui

首先,需要安装pyautogui。打开命令行或终端,运行以下命令:

pip install pyautogui

基本操作

控制鼠标
  • 移动鼠标: moveTo(x, y, duration=num_seconds)函数将鼠标光标移动到屏幕上的指定位置。
import pyautogui
pyautogui.moveTo(100, 100, duration=2)  # 将鼠标移动到屏幕的(100,100)位置
  • 点击: click(x, y, button='left')函数在指定位置进行鼠标点击,默认为左键。
pyautogui.click()  # 在当前位置点击
pyautogui.click(200, 220, button='right')  # 在(200,220)位置右键点击
  • 滚动: scroll(amount_to_scroll, x, y)函数在指定位置上滚动鼠标。scroll函数的参数表示滚动的量,单位是"行"。
pyautogui.scroll(200)  # 向上滚动
控制键盘
  • 按键: press(keys)函数模拟按键。
pyautogui.press('enter')  # 模拟按下回车键
  • 键入文本: write(text, interval=seconds)函数模拟键入文本。
pyautogui.write('Hello, world!', interval=0.1)  # 模拟键入文本,每个字符间隔0.1秒
  • 组合键: hotkey('ctrl', 'c')函数模拟键盘组合键操作。
pyautogui.hotkey('ctrl', 'c')  # 模拟按下Ctrl+C复制

高级功能

屏幕截图和图像识别
  • 截图: screenshot()函数可以捕获屏幕截图。
screenshot = pyautogui.screenshot()
screenshot.save('screenshot.png')  # 保存截图
  • 图像识别: locateOnScreen('image.png')函数可以在屏幕上找到与指定图像匹配的位置。可以通过confidence参数增加搜索的容错能力。confidence参数用于指定匹配的精度,范围从0到1。注意,使用confidence参数需要安装opencv-python库。
button_location = pyautogui.locateOnScreen('button.png')
button_x, button_y = pyautogui.center(button_location)
pyautogui.click(button_x, button_y)  # 点击找到的按钮

安全特性

pyautogui提供了几个安全特性来防止脚本失控:

  • 故障安全: 默认情况下,将鼠标移动到屏幕的左上角将引发pyautogui.FailSafeException异常,从而停止脚本。
  • 操作延迟: pyautogui.PAUSE设置每个pyautogui调用之间的延迟,以减慢执行速度。
pyautogui.PAUSE = 1  # 每个操作后暂停1秒

实战示例

示例1:自动打开计算器

让我们通过一个简单的实战示例来巩固学习:自动打开计算器应用程序,进行一次加法操作,并关闭计算器。

import pyautogui
import time

# 每个操作后暂停1秒
pyautogui.PAUSE = 1  

# 打开计算器(这里假设是Windows系统)
pyautogui.press('win')
pyautogui.write('calculator', interval=0.25)
pyautogui.press('enter')
time.sleep(2)  # 等待计算器打开

# 进行加法操作
pyautogui.write('123+456', interval=0.25)
pyautogui.press('enter')

# 关闭计算器
pyautogui.hotkey('alt', 'f4')

演示
动图演示

示例2:模拟刷赞的例子

Python模拟刷赞助手

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1437792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop-IDEA开发平台搭建

1.安装下载Hadoop文件 1)hadoop-3.3.5 将下载的文件保存到英文路径下,名称一定要短。否则容易出问题; 2)解压下载下来的文件,配置环境变量 3)我的电脑-属性-高级设置-环境变量 4.详细配置文件如下&#…

python-分享篇-屏保计时器

文章目录 代码效果 代码 import turtle, time def drawGap():turtle.penup()turtle.fd(5) def drawLine(draw):drawGap()turtle.pendown() if draw else turtle.penup()turtle.fd(40)drawGap()turtle.right(90) def drawDigit(d):drawLine(True) if d in [2,3,4,5,6,8,9] else…

一台Mac同时安装vue2和vue3

背景:电脑需要运行vue2和vue3项目,就得同时有vue2和vue3环境,之前以配置好vue2了,现在增加vue3 1. 新建一个安装vue3的目录 进入vue3文件夹安装vue3 // 注意这里没有参数-g,因为-g全局安装的命令 npm install vue/cli…

laravel distinct查询问题,laravel子查询写法

直接调用后,count查询会和实际查询的数据对不上,count还是查询全部数据,而实际的列表是去重的。 给distinct加上参数,比如去重的值的id,就加id。 另一种写法是使用group by id 子查询。 sql语句: selec…

介绍 MSTest Runner – CLI、Visual Studio 等

作者:Amaury Lev Marco Rossignoli Jakub Jareš 排版:Alan Wang 我们很高兴推出 MSTest 运行器,这是一款全新的轻量级 MSTest 测试运行器。这个新的运行器使测试更加便携和可靠,运行速度更快,并且具有可扩展性&#x…

如何安装x11vnc并结合cpolar实现win远程桌面Deepin

文章目录 1. 安装x11vnc2. 本地远程连接测试3. Deepin安装Cpolar4. 配置公网远程地址5. 公网远程连接Deepin桌面6. 固定连接公网地址7. 固定公网地址连接测试 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂&#xff…

【C++】基础知识讲解(命名空间、缺省参数、重载、输入输出)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:http://t.csdnimg.cn/eCa5z 目录 命名空间 命名空间的定义 命名空间的使用 命名空间的嵌套使用 C输入&输出 std命名空间的使用惯例&…

穿越周期,海信稳居全球第二的底气和底盘

【潮汐商业评论/原创】 颠覆创新,凡墙皆是门,而因循守旧,凡门皆是墙。 面对充满不确定性的时代,用什么驱散迷雾走向增长?这是当下中国大部分企业所面临的困惑。 选择用什么答案来应对这个问题,也决定了企…

stable-diffusion | v1-5-pruned.ckpt和v1-5-pruned-emaonly.ckpt的区别

https://github.com/runwayml/stable-diffusion?tabreadme-ov-file#reference-sampling-script 对于 1.5 模型,其中可能包括四部分:标准模型、文本编码器、VAE模型、EMA模型。 标准模型:生成图片的核心模块,潜空间中的前向扩散和…

【Django】Django中的缓存

缓存 1 缓存的定义 定义:缓存是一类可以更快的读取数据的介质统称,也指其他可以加快数据读取的存储方式,一般用来存储临时数据,常用介质的是读取速度很快的内存。 意义:视图渲染有一定成本,数据库的频繁查…

电力负荷预测 | Matlab实现基于LSTM长短期记忆神经网络的电力负荷预测模型(结合时间序列)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | Matlab实现基于LSTM长短期记忆神经网络的电力负荷预测模型(结合时间序列) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断…

UE4 C++创建摄像机摇臂和相机并且设置Transform

新建MyPawn C类 .h #include "GameFramework/SpringArmComponent.h" //SpringArm组件 #include "Camera/CameraComponent.h" //Camera组件class 工程名称_API AMyPawn : public APawn { //定义组件变量 public:UPROPERTY(VisibleAnywhere, BlueprintRead…

【数据库原理及应用】简答题归纳总结

第一章 数据库概论 1.人工管理阶段数据管理的特点: (1)数据不保存在机器中 (2)无专用的软件对数据进行管理 (3)只有程序的概念,没有文件的概念 (4)数据面向程…

2024-02-06 TCP/UDP work

1. 画出TCP三次握手和四次挥手的示意图,并且总结TCP和UDP的区别 三次握手: 4次挥手: tcp/udp区别 TCP 1. 稳定,提供面向连接的,可靠的数据传输服务 2. 传输过程中,数据无误、数据无丢失、数据无失序、…

在 Docker 中启动 ROS2 里的 rivz2 和 rqt 出现错误的解决方法

1. 出现错误: 运行 ros2 run rivz2 rivz2 ,报错如下 : No protocol specified qt.qpa.xcb: could not connect to display :1 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was f…

[自然语言处理|NLP] 文本分类与情感分析,数据预处理流程,包括了同义词替换和拼写纠正,以及使用NLTK库和TextBlob库进行标记化和情感分析(附代码)

[自然语言处理|NLP] 文本分类与情感分析,数据预处理流程,包括了同义词替换和拼写纠正,以及使用NLTK库和TextBlob库进行标记化和情感分析(附代码)。 自然语言处理(Natural Language Processing,简称NLP)是人工智能领域的一个重要分支,涉及了处理和理解人类语言的技术…

2024年R2移动式压力容器充装证模拟考试题库及R2移动式压力容器充装理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年R2移动式压力容器充装证模拟考试题库及R2移动式压力容器充装理论考试试题是由安全生产模拟考试一点通提供,R2移动式压力容器充装证模拟考试题库是根据R2移动式压力容器充装最新版教材,R2…

centos 7.6 安装cas 对接ldap 单点登录实战

centos 7.6 安装cas 对ldap 单点登录实战 1、安装前准备工作1.1、centos 7.6 安装JDK 1.81.2、centos 7 安装tomcat 9.0.841.3、windows10 安装JDK 1.81.4、windows10 安装打包工具 maven 3.9.6 2、下载cas 5.3 并打包成war包3、部署cas到tomcat4、cas对接ldap 1、安装前准备工…

百度拟将量子实验室捐赠予北京量子院 /一汽解放与华为合作,预计2025年底量产自动驾驶产品 |魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 百度捐赠量子实验室推进量子计算研究,助力人工智能发展 一汽解放…

qt学习:mplayer播放器(视频)+arm如何播放视频实战+c启动播放器

目录 作用 linux下载 arm下载 使用方法 键盘 命令 命令词有很多,举例几个 在arm上qt实战 配置ui界面 添加头文件,成员,函数 添加视频按钮点击事件 列表选项双击事件 播放按钮点击事件 暂停继续按钮点击事件 停止按钮点击事件 …