hyuiauto 是基于Python的 图形界面应用自动化库。

news/2025/2/21 9:14:50/文章来源:https://www.cnblogs.com/ZhiXiaoBbai/p/18724481

快速上手

点击这里,边看视频讲解,边学习以下内容

简介

hyuiauto 是基于Python的 图形界面应用自动化库。

长期目标是实现 移动应用, 电脑应用的界面自动化。

目前先实现一部分 安卓手机自动化的功能

 

和其它UI界面自动化库不同,hyuiauto 不涉及系统的UI底层引擎和自动化库, 而是采用AI识别文字的方式进行自动化。

所以能做到 更广泛的自动化, 比如 微信/支付宝 小程序 等等, 只要是根据文字界面进行操作的,基本都可以。

您需要高效学习,找工作? 点击咨询 报名实战班

点击查看学员就业情况

安装

绿色解压版(Windows)

安装本来很简单,但是其依赖的AI识别库,安装往往会有各种问题。

如果你想快速使用, 直接下载做好的绿色解压包( 包含了整个Python解释器,和需要安装的库),解压后,使用里面的Python,执行你的代码即可。

目前只提供 Windows 环境下的

下载地址:https://pan.baidu.com/s/1Daf4ymj9lRBlqmh8eLAzGg?pwd=1111

注意

执行识别图片时,如果出现 DLL load failed while importing libpaddle: 找不到指定的模块, 请点击这里,下载安装微软的 C/C++ 运行时库。

如果出现 RuntimeError: (NotFound) Cannot open file c:\Users\你的中文用户名\.paddleocr\whl\det\ch\....., please confirm whether the file is norma1 , 应该是Windows的中文用户名 导致 模型下载路径 c:\Users\用户名\.paddleocr\ 里面的文件打不开, 换个英文登录账号试试。

自己安装

安装 百度 PaddleOCR

hyuiauto经常需要识别屏幕上的文本,缺省使用 百度 PaddleOCR

目前(2024/01/01), 安装PaddleOCR时,需要安装很多依赖的库,

对于 3.10 以上版本的Python解释器,有些依赖的库,没有编译好的Wheel,需要本地编译安装,从而带来各种问题。

经过一番尝试(折腾),目前建议使用 Python3.10 解释器,

 

先安装 paddlepaddle ,目前建议 2.5.2 版本,执行如下命令

pipinstallpaddlepaddle==2.5.2-ihttps://mirror.baidu.com/pypi/simple

 

然后安装 PaddleOCR 库,目前建议安装 paddleocr 2.7.0.3 版本。

执行如下命令,

pipinstallpaddleocr==2.7.0.3-ihttps://mirror.baidu.com/pypi/simple

这个库依赖好多其它的库,会同时下载安装。

安装 hyuiauto

很简单,执行如下命令即可

pipinstallhyuiauto-ihttps://mirror.baidu.com/pypi/simple

hyuiauto 需要 Python解释器为 3.9 或者更新的版本

安装 adb ( 非Windows环境)

hyuiauto 自动化需要 adb

 

hyuiauto包 内置了 Windows 的 adb 程序,如果是Windows系统,不需要你额外再安装了。

 

如果是 MacOS 或者 Linux 请自行安装好 adb , 并保证其所在目录在环境变量 PATH 中,执行 adb 可以直接访问到。

比如, 苹果 MacOS 上 可以通过 homebrew 安装,执行下面的命令即可

brewinstallandroid-platform-tools

 

安装好后,连接手机到电脑上,执行

adbdevices

确保可以看到连接的手机信息

启动 hyuiauto安卓助手

安卓助手是一个图形界面工具,可以:

  1. 列出连接设备信息

  2. 查看手机上的应用package名称

  3. 查看常用代码模板

  4. 识别屏幕指定区域的文字,预先了解识别结果

可以方便我们快速开发代码

 

命令行执行如下命令,打开 hyuiauto安卓助手

python -c "from hyuiauto.tools.server import *;runTool('androidtool')"

 

大家连接好安卓手机, 确保打开 开发者模式 ,并且开发一些调试选项。

如果没有这方面操作经验, 请点击这里参考我的Appium 教程中如何操作的说明。

 

然后,点击工具界面上 列出安卓设备 。 这会启动 adb服务, 系统可能会弹出防火墙告警,选择 允许 即可。

如果手机是第一次连接此电脑,手机上会弹出是否允许此电脑调试本手机的 界面, 选择 允许

 

选中列出的安卓设备,界面右边会有 显示屏幕 的按钮,点击就会显示当前手机屏幕到界面上。

 

点击 文字识别 会将屏幕上包含的所有文字识别出来。

第一次执行文字识别时,PaddleOcr 会自动下载 AI模型包,命令行窗口会显示如下。并且初始化会花费一些时间,请耐心等待

downloadhttps://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tartoC:\Users\jcyrs/.paddleocr/whl\det\ch\ch_PP-OCRv4_det_infer\ch_PP-OCRv4_det_infer.tar
100%|████████████████████████████████████████████████████████████████████████████|4.89M/4.89M[00:03<00:00,1.40MiB/s]
downloadhttps://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tartoC:\Users\jcyrs/.paddleocr/whl\rec\ch\ch_PP-OCRv4_rec_infer\ch_PP-OCRv4_rec_infer.tar
100%|████████████████████████████████████████████████████████████████████████████|11.0M/11.0M[00:05<00:00,1.94MiB/s]
downloadhttps://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tartoC:\Users\jcyrs/.paddleocr/whl\cls\ch_ppocr_mobile_v2.0_cls_infer\ch_ppocr_mobile_v2.0_cls_infer.tar
100%|████████████████████████████████████████████████████████████████████████████|2.19M/2.19M[00:02<00:00,1.06MiB/s]

代码示例

下面是一个自动化打开操作支付宝小程序 支付宝公益 的示例

from time import sleep
from hyuiauto import AndroidConnector

ac = AndroidConnector()

device = ac.device(manufacturer='samsung', model=None, sn=None)

# 打开支付宝首页
device.openApp('com.eg.android.AlipayGphone')

device.tapTextOnScreen('我的小程序', exact=False) 

# device.waitForTextOnScreen('支付宝公益')

device.tapTextOnScreen('支付宝公益',range=(39, 401, 1008, 1100))
sleep(3)

# 点击搜索图标
device.tap(1000,300)
sleep(2)

# 点击左上角搜索框里面的搜索
device.tapTextOnScreen('搜索', range=(8, 262, 298, 409))
sleep(1)

device.inputString('困难家庭')
sleep(1)

# 点击右上角搜索
device.tapTextOnScreen('搜索', range=(823, 170, 1072, 519) )

sleep(2)

# 打印搜索结果
txt = device.screenToText(range=(5, 427, 1065, 2254))
print(txt)


原文地址: https://www.byhy.net/etc/hyuiauto/01/

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

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

相关文章

最新扣子(Coze)案例教程:DeepSeek 图像生成,用扣子应用打造超萌表情包生成器,手把手教学,完全免费教程

上一篇文章和大家分享了如何把DeepSeek-R1接入到扣子智能体中进行使用,这篇教程让我们来应用一下DeepSeek,使用DeepSeek结合工作流中的图像生成节点,打造一个表情包生成器的应用。 应用作用:输入一个人物或动物主题,生成一组表情包。 首先我们来看一下生成后的效果: 图像…

我悟了!原来本地图片预览还能这样搞

在网页开发中,经常会遇到需要让用户上传图片并在上传前进行预览的需求。这样做的好处显而易见:用户可以立即看到自己选择的图片是否正确,避免了不必要的上传和服务器资源浪费,提升了用户体验。Hey, 我是 Immerse 本文首发于 【沉浸式趣谈】,我的个人博客 https://yaolifen…

octave画高通滤波、超前,滞后补偿器的幅频响应图

octave代码非常简单:pkg load control s=tf(s); k=0.5; sysG1=k*(0.005*s)/(0.005*s+1); sysG2=k*(0.8*s+1)/(0.1*s+1); sysG3=k*(s+1)/(5*s+1); figure bode(sysG1) figure bode(sysG2) figure bode(sysG3)也可以借助循环,看如下代码:1 pkg load control2 s=tf(s);3 k=0.5;…

frame切换/窗口切换

frame切换/窗口切换 切换到frame点击这里,边看视频讲解,边学习以下内容 请大家点击这里,打开这个链接 如果我们要 选择 下图方框中 所有的 蔬菜,使用css选择,怎么写表达式? 当然,要先查看到它们的html元素特征大家可能会照旧写出如下代码:from selenium import webdriv…

选择元素的基本方法

选择元素的基本方法点击这里,边看视频讲解,边学习以下内容对于百度搜索页面,如果我们想自动化输入 白月黑羽 ,怎么做呢? 这就是在网页中,操控界面元素。 web界面自动化,要操控元素,首先需要 选择 界面元素 ,或者说 定位 界面元素 就是 先告诉浏览器,你要操作 哪个 …

操控元素的基本方法

操控元素的基本方法 点击这里,边看视频讲解,边学习以下内容选择到元素之后,我们的代码会返回元素对应的 WebElement对象,通过这个对象,我们就可以 操控 元素了。 操控元素通常包括 点击元素在元素中输入字符串,通常是对输入框这样的元素获取元素包含的信息,比如文本内容…

CClink IEF Basic设备数据 转EthernetIP项目案例

VFBOX协议转换网关支持PLC,modbus,EthernetIP,Profinet,CCLink,EtherCAT,IEC61850,IEC104,bacnet,DLT645,HJ212,opc ua,opc da,DNP3。目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集CCLINK IEF BASIC数据 2 5 使用ETHERNETIP转发数据 5 6 案例…

SciTech-EECS-BigDataAIML-NN(神经网络): Forward NN(前向传播算法)

SciTech-EECS-BigDataAIML-NN(神经网络): Forward NN(前向传播算法)

微信小程序-实现微信授权自动登录功能

显示效果 授权前界面授权弹框界面 采用了wx.getUserProfile API申请用户信息,若基础库版本过高,例如3.7.7,则不会显示弹窗,默认为允许状态。若基础库版本降低,例如2.25.4,则会显示弹窗,如下图所示授权后界面前端部分 基础封装 新建utils文件夹,在该文件夹下新建login.j…

为DeepSeek添加本地知识库

为什么要尝试给DeepSeek添加本地知识库呢?作为一个程序员,以前也用过很多AI产品,直到春节DeepSeek爆火,成功在自己的电脑上把AI模型跑起来的时候才真正感受到AI已近在咫尺。未来很多应用和项目都离不开这个工具。或许在我们OA系统中会出现一个AI小助手,我们会问它差旅费报…

SciTech-EECS-Circuits-Digital(数字电路): Latch(锁存器) + Flip/Flop(触发器) + 记忆存储电路

SciTech-EECS-Circuits-Digital(数字电路) Latch(锁存器)Flip/Flop(触发器)记忆存储电路

山石网科阿里云通义灵码,开启研发“AI智造”新时代

近日,山石网科正式宣布全面接入阿里云通义灵码企业专属版,这标志着山石网科在研发智能化、自动化领域迈出重要一步,为研发工作注入强大的AI动力,实现多维度的效率飞跃。近日,山石网科正式宣布全面接入阿里云通义灵码企业专属版,这标志着山石网科在研发智能化、自动化领域…