# -*- coding: utf-8 -*- """ Android 模拟器图像识别测试脚本 """ from airtest.core.api import * import sys # 初始化设备连接 def init_device(): # 连接 Android 模拟器 dev = connect_device("android://127.0.0.1:5037/emulator-5554") print(f"已连接设备: {dev}") return dev # 截取当前屏幕 def capture_screen(filename="screen.png"): dev = device() screen = dev.snapshot() # numpy.ndarray 转换为 PIL Image 并保存 from PIL import Image import numpy as np img = Image.fromarray(screen) img.save(filename) print(f"截图已保存: {filename}") return screen # 测试1: 打开相机应用 def test_open_camera(): print("测试1: 打开相机应用...") # 使用 ADB 启动相机 shell("am start -n com.inspection.camera/.ui.MainActivity") sleep(2) # 截图 capture_screen("test_open_camera.png") print("相机已打开") return True # 测试2: 模拟点击屏幕中心(测试触摸功能) def test_touch(): print("测试2: 测试触摸功能...") # 点击屏幕中心 touch([540, 960]) # 模拟器分辨率 1080x1920 的中心点 sleep(1) capture_screen("test_touch.png") print("触摸测试完成") return True # 测试3: 滑动测试 def test_swipe(): print("测试3: 测试滑动功能...") # 从上往下滑动 swipe([540, 300], [540, 900]) sleep(1) capture_screen("test_swipe.png") print("滑动测试完成") return True # 测试4: 查找屏幕上是否有特定文字(使用OCR) def test_ocr(): print("测试4: OCR文字识别测试...") try: from airtest.aircv import aircv import numpy as np # 截图 screen = device().snapshot() # 使用 PIL 显示图像信息 from PIL import Image img = Image.fromarray(screen) print(f"屏幕分辨率: {img.size}") print(f"屏幕模式: {img.mode}") capture_screen("test_ocr.png") print("OCR 测试完成") return True except Exception as e: print(f"OCR测试出错: {e}") return False # 主测试函数 def main(): print("=" * 50) print("Android 模拟器图像识别测试") print("=" * 50) try: # 初始化设备 init_device() # 执行测试 test_open_camera() test_touch() test_swipe() test_ocr() print("\n" + "=" * 50) print("所有测试完成!") print("=" * 50) except Exception as e: print(f"测试出错: {e}") import traceback traceback.print_exc() if __name__ == "__main__": main()