基于 Airtest 和 PaddleOCR 的自动化测试工具封装,提供丰富的OCR识别和操作功能。
- OCR文字识别: 使用PaddleOCR识别屏幕上的文字
- 智能点击: 基于文字内容的精确点击
- 偏移量操作: 基于文字坐标的像素偏移点击
- 滑动操作: 基于起始和结束文字的滑动
- 多文字策略: 多种点击策略(置信度最高、最近距离、第一个匹配)
ocr_touch(text, **kwargs): OCR点击文字ocr_double_click(text, **kwargs): OCR双击文字ocr_swipe(start_text, end_text, **kwargs): OCR滑动操作
ocr_touch_multiple(texts, strategy, **kwargs): 多文字点击策略ocr_find_text_with_offset(text, offset_x, offset_y, **kwargs): 偏移量点击ocr_wait_text(text, **kwargs): 等待文字出现ocr_get_all_texts(**kwargs): 获取所有识别文字
set_confidence_threshold(threshold): 设置置信度阈值ocr_get_text_position(text, **kwargs): 获取文字位置
# 激活虚拟环境
.\env\Scripts\activate
# 安装依赖
pip install -r requirements.txtfrom ocr_utils import *
# 初始化连接设备(需要先连接Android设备)
# connect_device("Android:///")
# 简单点击
ocr_touch("确定")
# 带偏移量的点击
ocr_find_text_with_offset("按钮", 10, -5)
# 多文字策略点击
ocr_touch_multiple(["确定", "确认", "OK"], strategy='confidence')from ocr_utils import *
def test_automation():
# 设置置信度阈值
ocr_utils.set_confidence_threshold(0.7)
# 等待特定文字出现
if ocr_wait_text("设置", timeout=10):
# 点击设置
ocr_touch("设置")
# 在设置文字右侧点击
ocr_find_text_with_offset("设置", 50, 0)
# 滑动操作
ocr_swipe("上", "下")
# 多文字策略
ocr_touch_multiple(["确定", "确认"], strategy='confidence')- 默认: 0.7
- 建议范围: 0.5-0.9
- 高精度场景: 0.8-0.9
- 模糊匹配场景: 0.5-0.7
- 默认: 10秒
- 可根据网络和设备性能调整
- 正数: 向右/向下偏移
- 负数: 向左/向上偏移
- confidence: 点击置信度最高的文字
- nearest: 点击最接近目标坐标的文字
- first: 点击第一个匹配的文字
# 置信度策略
ocr_touch_multiple(["按钮1", "按钮2"], strategy='confidence')
# 最近距离策略
ocr_touch_multiple(["选项A", "选项B"], strategy='nearest', target_pos=(500, 300))
# 第一个匹配策略
ocr_touch_multiple(["确定", "取消"], strategy='first')try:
if not ocr_touch("不存在的文字", timeout=5):
print("未找到文字,执行备用方案")
except Exception as e:
print(f"OCR操作失败: {e}")- GPU加速: 如果设备支持,设置
use_gpu=True - 合理超时: 根据实际场景设置合适的超时时间
- 置信度调整: 根据文字清晰度调整置信度阈值
- 缓存结果: 对于重复操作,可以缓存OCR识别结果
airtest-ocr/
├── ocr_utils.py # 核心OCR工具类
├── example_usage.py # 使用示例
├── requirements.txt # 项目依赖
└── README.md # 项目说明
- 使用前确保Android设备已连接
- 首次使用PaddleOCR会自动下载模型文件
- 建议在稳定的网络环境下使用
- 根据实际屏幕分辨率调整偏移量
如有问题请参考: