跳转至

快速上手

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

简介

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

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

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


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

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

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

点击查看学员就业情况

安装

绿色解压版(Windows)

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

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

目前只提供 Windows 环境下的

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

自己安装

安装 百度 PaddleOCR

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

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

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

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


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

pip install paddlepaddle==2.5.2 -i https://mirror.baidu.com/pypi/simple


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

执行如下命令,

pip install paddleocr==2.7.0.3 -i https://mirror.baidu.com/pypi/simple

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

安装 hyuiauto

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

pip install hyuiauto -i https://mirror.baidu.com/pypi/simple

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

安装 adb ( 非Windows环境)

hyuiauto 自动化需要 adb


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


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

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

brew install android-platform-tools


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

adb devices

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

启动 hyuiauto安卓助手

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

  1. 列出连接设备信息

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

  3. 查看常用代码模板

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

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


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

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


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

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


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

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


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


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

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

download https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar to C:\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]
download https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar to C:\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]
download https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar to C:\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)