python 自动化模块 - pyautogui初探

news2024/9/21 16:28:38

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 = 0

try:
    while True:
        time.sleep(3)                # 睡3秒钟
        x, y = pyautogui.position()  # 获取鼠标坐标
        if x != _x or y != _y:
            _x = x
            _y = y
            positionStr = '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 pyautogui

distance = 50
while distance > 0:
    pyautogui.drag(distance, 0, duration=0.5)   # move right
    distance -= 5
    pyautogui.drag(0, distance, duration=0.5)   # move down
    pyautogui.drag(-distance, 0, duration=0.5)  # move left
    distance -= 5
    pyautogui.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.coloradmin.cn/o/1398555.html

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

相关文章

卡萨帝洗衣机:被模仿也是竞争力

如何用一句话形容某家企业的竞争力和领导地位?“某某一出手,就知有没有。”这句话相当匹配。如果再加一条,“被模仿”也恰到好处。 从顶流公司OpenAI,苹果Apple Vision Pro,再到卡萨帝洗衣机,被跟随、模仿…

thinkadmin表单上传单图,多图,单文件,多文件

{extend name="../../admin/view/main"}{block name=content} <form action="{:sysuri()}" class="layui-card layui-form" data-auto="tr

iPerf3 使用指南

文章目录 iPerf3 使用指南1 iPerf3 简介2 安装指令2.1 Windows2.2 Linux 3 入门用法4 进阶用法4.1 启动服务端4.2 TCP 带宽测试4.3 UDP 带宽测试 5 iPerf3 命令说明 iPerf3 使用指南 1 iPerf3 简介 iPerf3 是用于主动测试 IP 网络上最大可用带宽的工具。它支持时序、缓冲区、…

Linux编写简易shell

思路&#xff1a;​ ​ ​ 所以要写一个shell&#xff0c;需要循环以下过程:​ 获取命令行解析命令行建立一个子进程&#xff08;fork&#xff09;替换子进程&#xff08;execvp&#xff09;父进程等待子进程退出&#xff08;wait&#xff09; 实现代码&#xff1a;​ #inc…

AI量化交易案例

量化交易 案例介绍 1.1 案例说明 机器学习与人工智能在金融领域已有成熟的应用。用统计模型来预测股票等金融产品的价格并自动交易&#xff0c;这是其中的经典问题。价格预测的模型是这个应用场景中的核心问题&#xff0c;在预测价格变化的基础上&#xff0c;通过一定的交易规则…

给视频添加srt字幕,为你的创作加上心声

无论你是分享生活点滴、教学知识&#xff0c;还是传递某种情感&#xff0c;总会有那么一刹那&#xff0c;言语显得如此苍白无力。而srt字幕就像是一位翻译官&#xff0c;用最恰当、最直接的文字&#xff0c;把你所要表达的意思准确的传递给观众。 所需工具&#xff1a; 一个【…

[C#]winform部署openvino调用padleocr模型

【官方框架地址】 https://github.com/PaddlePaddle/PaddleOCR 【算法介绍】 OpenVINO和PaddleOCR都是用于计算机视觉应用的工具&#xff0c;但它们有不同的特点和用途。OpenVINO是一个由Intel开发的开源工具套件&#xff0c;主要用于加速深度学习推理&#xff0c;而PaddleOC…

MySQL---视图索引

表定义&#xff1a; 学生表&#xff1a;Student (Sno, Sname, Ssex , Sage, Sdept) 学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;所在系 Sno为主键 课程表&#xff1a;Course (Cno, Cname,) 课程号&#xff0c;课程名 Cno为主键 学生选课表&#xff1a;S…

DolphinDB学习(0):DolphinDB基本概述

DolphinDB的学习难度不小&#xff0c;主要是写法比较多&#xff0c;官方示例是一次性给一大堆代码&#xff0c;在没有成体系的学习基础的前提下&#xff0c;总有种力不从心的感觉&#xff0c;所以博主汇总这一个系列的文章&#xff0c;尝试从最简单的基础常规操作开始&#xff…

css绘制下拉框头部三角(分实心/空心)

1:需求图: 手绘下拉框 带三角 2:网上查了一些例子,但都是实心的, 可参考,如图: (原链接: https://blog.csdn.net/qq_33463449/article/details/113375804) 3:简洁版的: a: 实心: <view class"angle"/>.angle{width:0;height:0;border-left: 10px solid t…

安全基础~攻防特性3

文章目录 SSTI(模板注入)1. 简介2. 成因3. 常见框架存在注入4. 判断存在SSTI SSTI(模板注入) 1. 简介 (Server-Side Template Injection) 服务端模板注入 1、使用框架&#xff08;MVC的模式&#xff09;&#xff0c;如python的flask&#xff0c;php的tp&#xff0c;java的sp…

Flask 3.x log全域配置(包含pytest)

最近使用到flask3.x&#xff0c;配置了全域的log&#xff0c;这边记录下 首先需要创建logging的配置文件&#xff0c;我是放在项目根目录的&#xff0c; Logging 配置 logging.json {"version": 1, # 配置文件版本号"formatters": {"default&qu…

目标检测难题 | 小目标检测策略汇总

大家好&#xff0c;在计算机视觉中&#xff0c;检测小目标是最有挑战的问题之一&#xff0c;本文给出了一些有效的策略。 从无人机上看到的小目标 为了提高模型在小目标上的性能&#xff0c;本文推荐以下技术&#xff1a; 提高图像采集的分辨率 增加模型的输入分辨率 tile你…

C++PythonC# 三语言OpenCV从零开发(3):图像读取和显示

文章目录 相关链接前言Mat是什么读取图片CC#Python 灰度处理CCSharpPython 打印图像信息CCsharpPython 总结 相关链接 C&Python&Csharp in OpenCV 专栏 【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程&#xff08;附带课程课件资料课件笔记&#xff09; …

项目上线存在的缓存问题以及存在的debugger和console.log等问题

下载uglifyjs-webpack-plugin插件 在vue.config文件中进行配置 publicPath: process.env.NODE_ENV production ? ./ : /,outputDir: n-sim-ipc-manage-build,productionSourceMap: false,configureWebpack: config > {//打包文件增加hashconfig.output.filename js/[nam…

微电网优化MATLAB:基于麻雀搜索算法SSA的微电网优化调度(提供MATLAB代码)

一、微网系统运行优化模型 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、麻雀搜索算法简介 麻雀搜索算法 (Sparrow Search Algorithm, SSA) 是一种新型的群智能优化算法&#xff0c;于2020…

博达V900远程透传模块与台达PLC远程上下载程序,远程在线调试程序

准备工作 一台可联网操作的电脑一台单网口的远程透传网关及博达远程透传配置工具网线一条&#xff0c;用于实现网络连接和连接PLC一台台达PLC及其编程软件WPLSoft一张4G卡或WIFI天线实现通讯(使用4G联网则插入4G SIM卡&#xff0c;WIFI联网则将WIFI天线插入USB口&#xff09; …

利用Pytest插件pytest-asyncio实现异步代码测试

在现代异步编程的时代,Python中的 pytest-asyncio 插件为我们提供了在异步代码中进行测试的强大工具。本文将深入介绍 `pytest-asyncio` 插件的基本用法和实际案例,助你更好地理解和运用异步测试。 什么是pytest-asyncio? pytest-asyncio 是Pytest的一个插件,它为异步代码…

免费的几个站群更新软件【2024】

在网站运营的过程中&#xff0c;及时更新和维护是保持网站活力和吸引用户的关键。站群更新软件成为了许多站长的首选&#xff0c;能够帮助批量管理网站、自动更新原创文章&#xff0c;并通过主动推送服务向各大搜索引擎提交信息。本文将专心分享四款卓越的站群更新软件&#xf…

上门按摩系统的开发对于按摩行业有哪些意义

随着科技的迅猛发展&#xff0c;人们的生活水平逐渐提高&#xff0c;对健康与舒适的需求也日益增强。作为古老而又充满现代感的保健方式&#xff0c;按摩已受到广大民众的喜爱与接纳。然而&#xff0c;传统的按摩店往往需要顾客亲自上门&#xff0c;这对于忙碌的上班族或行动不…