一个简单的跨平台Python GUI自动化 AutoPy

news2025/4/8 11:08:03

象一下,你坐在电脑前,手指轻轻一点,鼠标自己动了起来,键盘仿佛被无形的手操控,屏幕上的任务自动完成——这一切不需要你费力,只靠几行代码就能实现。这就是AutoPy的魅力,一个简单却强大的跨平台Python GUI自动化模块。它能控制鼠标、键盘,识别屏幕上的颜色和图像,甚至弹出提醒窗口,轻松搞定繁琐的操作。无论是Windows、macOS还是Linux,AutoPy都能游刃有余。想知道这个小工具如何让生活更轻松吗?让我们一探究竟!

AutoPy是一个轻量级的Python库,专注于提供跨平台的GUI自动化功能。它可以帮助开发者自动化桌面应用程序的操作,模拟用户输入、点击、键盘操作等,支持Windows、macOS和Linux等主流操作系统。

GUI自动化测试作为保障软件质量与用户体验的关键环节,地位愈发重要。高效的GUI自动化测试工具,能够显著提升测试效率,降低人工成本,缩短软件迭代周期。

GUI自动化测试会常常用到鼠标、键盘、屏幕截图、警报等操作,本篇将介绍一款可以实现这些方法的Python GUI自动化库– AutoPy。

核心功能

  • 键盘模拟:通过AutoPy,你可以模拟键盘输入来执行文本输入、组合键操作等。

  • 鼠标控制:可以模拟鼠标的点击、移动、拖拽等操作。

  • 屏幕截图与图像识别:支持全屏截图和图像识别功能,允许自动化任务中通过视觉定位界面元素。

  • 窗口管理:可以获取窗口的相关信息,控制窗口大小、位置等。

应用场景

AutoPy适合用于自动化重复性任务,例如:

  • 自动化测试:自动模拟用户的操作进行软件测试。

  • 桌面应用控制:帮助用户通过脚本控制本地应用程序。

  • 图像识别与处理:结合自动化的图像识别,快速执行复杂操作。

简介
 

AutoPy是一个适用于Python的简单跨平台GUI自动化库。它包括用于控制键盘和鼠标、在屏幕上查找颜色和位图以及显示警报的功能。

目前在macOS、Windows和X11上支持XTest扩展。

安装要求:

  • Python 3.8及更高版本(适用于较新的版本)。

  • Rust 1.23.0-nightly 2019-02-06 或更高版本(除非使用二进制wheeldistribution)。

  • macOS 10.6及更高版本。

  • Windows 7及更高版本。

  • 带有XTest扩展的X11。

安装方式:

1、命令行安装:

pip install -U autopy

2、从GitHub存储库上的最新源代码构建:

git clone git://github.com/autopilot-rs/autopy-rs.git
cd autopy
make
make install

官方网址:

https://www.autopy.org/

3、快速上手


 

1、弹出警报。

import autopy

def hello_world():
    autopy.alert.alert("Hello, world")
hello_world()

运行结果:

 

 

2、控制鼠标。

立即将鼠标“传送”到屏幕的左上角:

import autopy
autopy.mouse.move(0, 0)

真实地移动鼠标到屏幕的左上角:

import autopy
autopy.mouse.smooth_move(0, 0)

3、控制键盘。

在当前关注的100 WPM输入中输入字符串“Hello,world!”中的密钥:

import autopy
autopy.key.type_string("Hello, world!", wpm=100)

或者,可以使用以下方法输入单个密钥:

import autopy
autopy.key.tap(autopy.key.Code.TAB, [autopy.key.Modifier.META])
autopy.key.tap("w", [autopy.key.Modifier.META])

4、使用位图。

将屏幕截图保存到文件中:

import autopy
autopy.bitmap.capture_screen().save('screengrab.png')

打印位图中找到的第一个图像的坐标(从左到右、从上到下扫描):

import autopy

def find_image_example():
    needle = autopy.bitmap.Bitmap.open('needle.png')
    haystack = autopy.bitmap.Bitmap.open('haystack.png')

    pos = haystack.find_bitmap(needle)
    if pos:
        print("Found needle at: %s" % str(pos))

find_image_example()

总结

如今,自动化成了热门趋势。从程序员到普通白领,大家都在找方法简化重复工作。AutoPy的流行,正是因为它迎合了这种需求——它小巧灵活,不像复杂的框架那样让人望而生畏。尤其在远程办公时代,许多人用它自动处理表格、邮件,甚至游戏挂机。它在GitHub上有多个分支和贡献者,社区活跃,说明这种轻量级工具正逐渐融入我们的数字生活,成为效率提升的小秘密。

AutoPy提供了一个简洁且强大的跨平台GUI自动化解决方案,对于需要自动化桌面操作的开发者来说,它是一个非常实用的工具。

总的来说,AutoPy是一个简单却强大的工具,它用最少的代码实现最大的便利。跨平台的特性让它适用广泛,轻松上手的设计则让每个人都能享受自动化的乐趣。它不仅是技术的体现,更是现代生活中效率与自由的象征。只要几行脚本,就能把枯燥的任务交给电脑,自己去做更有意义的事。

 

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

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

相关文章

【嵌入式系统设计师】知识点:第4章 嵌入式系统软件基础知识

提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…

基于RDK X3的“校史通“机器人:SLAM导航+智能交互,让校史馆活起来!

视频标题: 【校史馆の新晋顶流】RDK X3机器人:导览员看了直呼内卷 视频文案: 跑得贼稳团队用RDK X3整了个大活——给校史馆造了个"社牛"机器人! 基于RDK X3开发板实现智能导航与语音交互SLAM技术让机器人自主避障不…

春芽儿智能跳绳:以创新技术引领运动健康新潮流

在全球运动健康产业蓬勃发展的浪潮中,智能健身器材正成为连接科技与生活的重要纽带。据《中国体育用品产业发展报告》显示,2023年中国智能运动装备市场规模突破千亿元,其中跳绳类目因兼具大众普及性与技术升级空间,年均增速超30%。…

NOA是什么?国内自动驾驶技术的现状是怎么样的?

国内自动驾驶技术的现状如何? 汽车的NOA指的是“Navigate on Autopilot”,即导航辅助驾驶或领航辅助驾驶。这是一种高级驾驶辅助系统(ADAS)的功能,它允许车辆在设定好起点和终点后,自动完成行驶、超车、变…

Linux 指令初探:开启终端世界的大门

前言 当我们初次接触 Linux,往往会被一串串在黑底屏幕中跳动的字符震撼甚至吓退。然而,正是这些看似晦涩的命令,构建了服务器、嵌入式系统乃至云计算的世界。 本篇将带你从最基础的 Linux 指令开始,逐步揭开命令行的神秘面纱。从…

Edge浏览器IE兼容模式设置

一、了解Edge浏览器的IE模式 Microsoft Edge,作为微软推出的新一代浏览器,不仅拥有更快的浏览速度、更强大的安全性能以及更现代的界面设计,还巧妙地解决了与旧网站和应用程序的兼容性问题。通过内置的IE模式,Edge能够模拟IE浏览器…

算法初识-时间复杂度空间复杂度

注:观看Adbul Bari算法视频 算法概念 算法:先验分析,不依托于硬件,无语言限制,逻辑。 程序:后验测试,依托硬件,语言限制,实现。 特点: 输入-0或多个输出-至…

Python高阶函数-sorted(深度解析从原理到实战)

一、sorted()函数概述 sorted()是Python内置的高阶函数,用于对可迭代对象进行排序操作。与列表的sort()方法不同,sorted()会返回一个新的已排序列表,而不改变原数据。 基本语法 sorted(iterable, *, keyNone, reverseFalse)二、核心参数详…

Vue3实战三、Axios封装结合mock数据、Vite跨域及环境变量配置

目录 Axios封装、调用mock接口、Vite跨域及环境变量配置封装Axios对象调用mock接口数据第一步、安装axios,处理一部请求第二步、创建request.ts文件第三步、本地模拟mock数据接口第四步、测试axiosmock接口是否可以调用第五步、自行扩展 axios 返回的数据类型 axios…

机器学习(神经网络基础篇)——个人理解篇5(梯度下降中遇到的问题)

在神经网络训练中,计算参数的梯度是关键步骤。numerical_gradient 方法旨在通过数值微分(中心差分法)计算损失函数对网络参数的梯度。然而,该方法的实现存在一个关键问题,导致梯度计算错误。 1、错误代码示例&#xf…

【Linux】虚拟机设置静态IP

主播我今天下午学了几节微服务课,上课的时候,直接把手机拿走了去上课(电脑连的我手机的热点),虚拟机没关,晚上主播我回来继续学,电脑连上热点之后,发现虚拟机连接不上了,…

职坐标解析自动驾驶技术发展新趋势

内容概要 作为智能交通革命的核心驱动力,自动驾驶技术正以惊人的速度重塑出行生态。2023年,行业在多传感器融合与AI算法优化两大领域实现突破性进展:激光雷达、摄像头与毫米波雷达的协同精度提升至厘米级,而深度学习模型的实时决…

局域网:电脑或移动设备作为主机实现局域网访问

电脑作为主机 1. 启用电脑的网络发现、SMB功能 2. 将访问设备开启WIFI或热点,用此电脑连接;或多台设备连接到同一WIFI 3. 此电脑打开命令行窗口,查看电脑本地的IP地址 Win系统:输入"ipconfig",回车后如图 4.…

小型园区组网图

1. 在小型园区中,S5735-L-V2通常部署在网络的接入层,S8700-4通常部署在网络的核心,出口路由器一般选用AR系列路由器。 2. 接入交换机与核心交换机通过Eth-Trunk组网保证可靠性。 3. 每个部门业务划分到一个VLAN中,部门间的业务在C…

数据分享:汽车测评数据

说明:如需数据可以直接到文章最后关注获取。 1.数据背景 Car Evaluation汽车测评数据集是一个经典的机器学习数据集,最初由 Marko Bohanec 和 Blaz Zupan 创建,并在 1997 年发表于论文 "Classifier learning from examples: Common …

批量将 txt/html/json/xml/csv 等文本拆分成多个文件

我们的文本文件太大的时候,我们通常需要对文本文件进行拆分,比如按多少行一个文件将一个大的文本文件拆分成多个小的文本文件。这样我们在打开或者传输的时候都比较方便。今天就给大家介绍一种同时对多个文本文件进行批量拆分的方法,可以快速…

Vue3 路由权限管理:基于角色的路由生成与访问控制

Vue3 路由权限管理:基于角色的路由生成与访问控制 一、核心概念 1.1 大致流程思路: 用户在登录完成的时候,后端给出一个此登录用户对应的角色名字,此时可以将这个用户的角色存起来(vuex/pinia)中,在设置路由时的met…

忘记mysql的root用户密码(已解决)

1、打开数据库可视化界面(比如MySQL workbench) 2、执行select host,user,authentication_string from mysql.user; 3、把‘authentication_string’下面的字段 复制到MD5在线解密网页中(比如md5在线解密)

ubuntu 20.04 编译和运行SC-LeGo-LOAM

1.搭建文件目录和clone代码 mkdir -p SC-LeGo-LOAM/src cd SC-LeGo-LOAM/src git clone https://github.com/AbangLZU/SC-LeGO-LOAM.git cd .. 2.修改代码 需要注意的是原作者使用的是Ouster OS-64雷达,需要更改utility.h文件中适配自己的雷达类型,而…

CentOS 7安装hyperscan

0x00 前言 HyperScan是一款由Intel开发的高性能正则表达式匹配库,专为需要快速处理大量数据流的应用场景而设计。它支持多平台运行,包括Linux、Windows和macOS等操作系统,并针对x86架构进行了优化,以提供卓越的性能表现。HyperSc…