python 自动化模块 - pyautogui初探

python 自动化模块 - pyautogui

  • 引言
  • 一、安装测试
  • 二、简单使用
  • 三、常用函数总结

引言

在这里插入图片描述
在画图软件中使用pyautogui拖动鼠标,画一个螺旋式的正方形 - (源码在下面)

PyAutoGUI允许Python脚本控制鼠标和键盘,以自动化与其他应用程序的交互。API的设计非常简单,适用于Windows、macOS和Linux。功能如下:

    1. 移动鼠标并在其他应用程序的窗口中单击。
    1. 向应用程序发送按键(例如,填写表格)。
    1. 截屏,并给出一个图像(例如,按钮或复选框),然后在屏幕上找到它。
    1. 找到应用程序的窗口,然后移动、调整大小、最大化、最小化或关闭它(当前仅限Windows)。
    1. 显示警报和消息框。

pyautogui是一个用于进行屏幕操作的Python库。它可以模拟鼠标移动、点击,键盘输入等操作,可以用于自动化任务或者进行简单的UI测试。pyautogui在Windows、macOS和Linux系统上都可以使用,并且支持Python2和Python3。使用pyautogui可以实现一些常见的屏幕操作,例如移动鼠标、点击鼠标、输入文本等。同时,它还可以识别屏幕上的像素颜色、获取屏幕截图等功能。需要注意的是,由于pyautogui是基于屏幕坐标操作的,所以在使用过程中需要确保屏幕分辨率和尺寸的一致性,以免操作错误。并且相比pywinauto,其更简单易上手1

  • 官方文档2:https://pyautogui.readthedocs.io/en/latest/

一、安装测试

    1. 下载安装:pip install pyautogui
    1. 使用pyautogui.position()获取鼠标坐标:
      在这里插入图片描述
import pyautogui
import time
print('Press Ctrl-C to quit.')# 备份坐标
_x = 0
_y = 0try:while True:time.sleep(3)                # 睡3秒钟x, y = pyautogui.position()  # 获取鼠标坐标if x != _x or y != _y:_x = x_y = ypositionStr = 'X: ' + str(x) + ' Y: ' + str(y)print(positionStr, flush=True)
except KeyboardInterrupt:print('\n')
    1. 移动鼠标,执行点击
pyautogui.click(x=100, y=200) # 移动到相应坐标,点击左键

二、简单使用

参考官方文档:https://pyautogui.readthedocs.io/en/latest/index.html#
在这里插入图片描述

import pyautoguidistance = 50
while distance > 0:pyautogui.drag(distance, 0, duration=0.5)   # move rightdistance -= 5pyautogui.drag(0, distance, duration=0.5)   # move downpyautogui.drag(-distance, 0, duration=0.5)  # move leftdistance -= 5pyautogui.drag(0, -distance, duration=0.5)  # move up

三、常用函数总结

  • pyautogui.position() 获取鼠标坐标
  • pyautogui.moveTo(100, 200) 移动鼠标,函数加To是绝对位置,不加为相对位置
  • pyautogui.dragTo(100, 200, button='left') 按下左键,拖动鼠标
  • pyautogui.click() x,y是坐标;clicks是点击次数;interval为点击间隔时间;button (str格式)可设置为 ‘right’ 默认’left’
    在这里插入图片描述
  • pyautogui.press('a') 键盘按下a;pyautogui.keyDown('a') 按住a;pyautogui.keyUp('a') 抬起 等等,可以传的参数就是键盘上的按键:
    在这里插入图片描述
  • pyautogui.confirm(text='confirm', title='confirm', buttons=['OK', 'Cancel']) 弹出对话框
    在这里插入图片描述
  • pyautogui.screenshot() 屏幕截图,可以选择保存的图片名称与截图区域
    在这里插入图片描述

  1. https://www.bilibili.com/read/cv22905820/ 用Python实现PC端应用自动化的准备工作(pyautogui\pywinauto) ↩︎

  2. https://pyautogui.readthedocs.io/en/latest/ 官方文档 ↩︎

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

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

相关文章

限流算法之流量控制的平滑之道:滑动时间窗算法

文章目录 引言简介优点缺点样例样例图样例代码 应用场景结论 引言 在互联网应用中,流量控制是一个重要的组件,用于防止系统过载和保护核心资源。常见的限流算法包括固定窗口算法和滑动时间窗算法。本文将重点介绍滑动时间窗算法,并分析其优缺…

基于Abaqus的三种钢筋混凝土梁数值模拟对比研究

混凝土结构抗压强度高,而抗拉强度大约只有其十分之一,在受到竖向荷载(包括自重)作用下,梁下部会产生拉应力,上部产生压应力,而由于其抗拉强度低,因此很小的荷载即可导致梁下部开裂&a…

Mysql中的日志系统

文章目录 1. 慢查询日志(Slow Query Log)1.1 是否开启慢查询日志1.2 开启慢查询日志,设置时间阈值1.2.1 修改文件my.ini1.2.2 重启mysql后配置生效 1.3 查看慢查询日志1.3.1 直接用文本编辑器打开1.3.2 使用mysqldumpslow进行分析 2. InnoDB …

C语言从入门到实战——文件操作

文件操作 前言一、 为什么使用文件二、 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 三、 二进制文件和文本文件四、 文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 文件的打开和关闭4.4 文件的路径 五、 文件的顺序读写5.1 顺序读写函数介绍fgetcfp…

【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )

文章目录 一、RGB 色彩1、RGB 色彩简介2、RGB 排列 二、YUV 色彩1、YUV 色彩简介2、YUV 编码好处 一、RGB 色彩 1、RGB 色彩简介 RGB 是 计算机 中的 颜色编码方法 , 红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 可以设置不同的值 , 每个 通道 的 颜色值都可以取值 0 ~ 255 ,…

【已解决】namespace “Ui“没有成员 xxx

先说笔者遇到的问题,我创建一个QWidget ui文件,然后编辑的七七八八后,想要用.h与.cpp调用其,编译通过,结果报了这个错误,本方法不是普适性,但是确实解决了这个鸟问题。 问题来源 搭建ui后&…

数据分析师不加班的秘密,三行代码教你Python自动发送邮件

作为一名数据分析师,每天除了做数据日报,还要编写邮件正文和添加数据日报附件,发送给对应的负责人及销售个人,一般一封邮件应包含邮箱账户名、邮箱密码、发送人邮箱、邮件主题以及邮件正文。 本文借助Python工具,使用y…

MyBatis框架基础到进阶

1、为什么要学习MyBatis 如果没有MyBatis框架,我们依靠JDBC和连接池已经能够很好的和数据库进行交互了,而学习MyBatis框架最核心的原因是为了减少SQL语句对代码的侵入性。 因为在过往不管是使用连接池还是JDBC Templete,所有的SQL语句都写在代…

java.sql.SQLException: Failed to fetch schema of XXX 问题

遇到问题:java.sql.SQLException: Failed to fetch schema of pay_record表 i.s.r.d.s.s.c.AbstractTableMetaCache : get table meta of the table pay_record error: Failed to fetch schema of pay_record 原因分析: springcloud项目中使用了se…

上海亚商投顾:沪指冲高回落 旅游板块全天强势

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日冲高回落,创业板指跌近1%,北证50指数跌超3%。旅游、零售板块全天强势&#xf…

python类继承之__init__函数覆盖问题

目录 1.问题描述 2.代码演示 3.总结 在Python这个广受欢迎的编程语言中,类继承是一项强大而精巧的特性。通过类继承,我们可以构建出更加灵活、可重用和易维护的代码,同时实现代码的模块化和扩展性。 但是如果对于熟悉C和java的人而言&…

R语言学习 case2:人口金字塔图

step1&#xff1a;导入库 library(ggplot2) library(ggpol) library(dplyr)step2&#xff1a;读取数据 data <- readxl::read_xlsx("data_new.xlsx", sheet 1) datareadxl::read_xlsx() 是 readxl 包中的函数&#xff0c;用于读取Excel文件。 step3&#xff1…

ckman:非常好用的ClickHouse可视化集群运维工具

概述 什么是ckman ckman&#xff0c;全称是ClickHouse Management Console&#xff0c; 即ClickHouse管理平台。它是由擎创科技数据库团队主导研发的一款用来管理和监控ClickHouse集群的可视化运维工具。目前该工具已在github上开源&#xff0c;开源地址为&#xff1a;github…

全网最详细丨2024年AMC8真题及答案来了

目录 前言 真题回忆 真题解析 结尾 前言 相信大家都已经知道今年AMC8出事情了吧&#xff0c;但最重要的还是要从中学到新知识。 听说今年考生被提前12分钟强制交卷了&#xff0c;肯定因为试题泄露了。 最新回复&#xff1a;我们这边已经退费了 真题回忆 需要word文档的请…

快速幂 算法

暴力算法 我们可以采用暴力算法 #include<bits/stdc.h> using namespace std; #define ll long long int main() {ll a, b, c;cin >> a >> b >> c;ll ans 1;for (ll i 1; i < b; i) {ans * a;}ans % c;cout << ans; } 不过这样肯定会超时…

计算机网络基础概念解释

1. 什么是网络 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#xff0c;即以多个计算机协同⼯作来完成业务&#xff0c;于是有了网络互连。 网络互连&#xff1a;将多台计算机连接在⼀起&#xff0c;完成数据共享。 数据共享本质是网络…

「 网络安全常用术语解读 」杀链Kill Chain详解

1. 简介 早在2009年&#xff0c;Lockheed Martin公司就提出了杀链(Kill Chain)理论&#xff0c;现在也称之为攻击者杀链(Attacker Kill Chain)。杀链其实就是攻击者进行网络攻击时所采取的步骤。杀链模型包括7个步骤&#xff1a;1侦察 -> 2武器化 -> 3交付 -> 4利用 …

不要长期把焦点放在让你烦恼的事情上

不要长期把焦点放在让你烦恼的事情上 在快节奏的生活中&#xff0c;我们经常会遇到各种各样让我们担心的事情。这些事情可能是工作上的压力&#xff0c;家庭中的矛盾&#xff0c;或者是个人的迷茫和困惑。然而&#xff0c;长期将焦点放在这些让我们烦恼的事情上&#xff0c;不…

PrestaShop购物系统 SQL注入漏洞复现(CVE-2023-30150)

0x01 产品简介 PrestaShop 是一个功能丰富,基于 PHP5 开发的 Web2.0 网上购物系统。PrestaShop 具有可定制,稳定等特点。整个系统只有 5.8MB,易于快速安装。 0x02 漏洞概述 PrestaShop 的部分主题中使用Leo Custom Ajax模块拓展,Leo Custom Ajax模块中可以在/modules/le…

JNPF低代码开发平台

一、关于低代码 JNPF平台在提供无代码&#xff08;可视化建模&#xff09;和低代码&#xff08;高度可扩展的集成工具以支持跨功能团队协同工作&#xff09;开发工具上是独一无二的。支持简单、快速地构建及不断改进Web端应用程序&#xff0c;可为整个应用程序的生命周期提供全…