pyaibote安卓自动化:从零到一的快速环境搭建与实战连接指南
1. 为什么选择pyaibote做安卓自动化第一次接触安卓自动化开发的朋友可能听说过Appium这样的老牌工具。但今天我要介绍的这个pyaibote用过的开发者都说回不去了。上个月帮朋友公司做自动化测试方案时原本计划用Appium搭建环境结果光是配置就花了半天时间。后来尝试pyaibote从安装到跑通第一个脚本只用了15分钟。pyaibote最大的优势就是开箱即用。它把传统方案中繁琐的环境配置过程变成了双击安装包就能解决的简单操作。官方提供的集成工具包会自动配置好所有环境变量连Node.js环境都内置好了——要知道在传统方案里光是Node版本冲突就够新手头疼半天。实测下来pyaibote的执行速度确实比Appium快很多。特别是在图像识别场景我们做过对比测试同样的找图操作pyaibote平均响应时间在200ms左右而Appium需要2秒以上。这个差距在批量操作时会非常明显比如我们需要连续点击10个相同图标的场景pyaibote能节省近20秒时间。2. 5分钟完成基础环境搭建2.1 下载官方工具包首先到官网下载最新版的集成工具包目前最新是v1.2.3版本。这里有个小技巧建议下载到C盘根目录因为部分杀毒软件可能会误报。我遇到过360安全卫士拦截的情况临时关闭防护就能解决。解压后你会看到一个名为AiboteTool的文件夹里面包含这些关键文件Aibote.exe主程序node_modules内置Node环境android_app手机端安装包2.2 一键初始化环境双击运行Aibote.exe程序会自动完成三件事添加系统环境变量注册必要的服务组件生成默认配置文件第一次运行时可能会弹出UAC权限请求点击是即可。如果看到控制台输出环境初始化成功的提示就可以进行下一步了。万一遇到失败的情况可以尝试右键以管理员身份运行。2.3 安装Python库打开命令行执行以下命令推荐使用Python 3.10版本pip install PyAibote --upgrade我习惯加上清华源加速下载pip install PyAibote -i https://pypi.tuna.tsinghua.edu.cn/simple验证安装是否成功python -c import PyAibote; print(PyAibote.__version__)正常应该会输出版本号比如1.2.3。3. 手机端配置详解3.1 开启开发者模式不同品牌的手机开启方式略有差异但核心步骤都是进入设置 → 关于手机连续点击版本号7次返回设置首页会发现多了开发者选项有个容易忽略的细节部分厂商如小米需要额外开启USB调试安全设置否则后续连接时只能充电无法传输数据。3.2 安装手机端服务通过USB连接电脑后把工具包里的android_app/aibote.apk安装到手机。如果不会手动安装可以用官方的投屏工具直接拖拽安装运行Aibote.exe点击顶部菜单的投屏按钮将APK文件拖入投屏窗口安装完成后手机端会出现名为AiboteService的应用。第一次打开时需要授予所有权限特别是显示在其他应用上层和无障碍服务这两个关键权限。4. 内网连接实战技巧4.1 双端网络配置确保电脑和手机连接同一个WiFi后在电脑命令行输入ipconfig记下IPv4地址如192.168.1.100手机端APP点击配置脚本在脚本地址栏填写电脑IP端口号建议用8000-9000之间的数值避免常用端口冲突这里有个坑部分路由器会开启AP隔离导致设备间无法互通。如果连接失败可以尝试关闭路由器的AP隔离功能或者用手机开热点电脑连接该热点4.2 端口映射验证在电脑端用这个命令测试端口是否通畅telnet 192.168.1.100 8888如果提示连接失败可能是防火墙拦截了。解决方法netsh advfirewall firewall add rule nameAibote dirin actionallow protocolTCP localport88885. 第一个自动化脚本5.1 基础代码结构创建一个demo.py文件写入以下代码from PyAibote import AndroidBotMain import time class MyBot(AndroidBotMain): Log_Level DEBUG # 开启调试日志 def script_main(self): # 解锁手机屏幕 self.unlock_screen() # 打开微信 self.start_app(com.tencent.mm) # 等待3秒 time.sleep(3) # 点击发现页 self.click(500, 1800) # 坐标需根据实际屏幕调整 if __name__ __main__: MyBot.execute(0.0.0.0, 8888)5.2 脚本调试技巧运行脚本后手机端APP点击启动脚本即可执行。建议开启悬浮窗功能这样可以在任意界面快速触发脚本。如果遇到元素定位问题可以用这些方法调试使用get_element_rect获取控件坐标通过take_screenshot保存当前画面用find_image进行图像匹配我常用的调试模式是在代码里插入检查点print(当前页面元素:, self.get_page_source()) self.take_screenshot(debug.png)6. 进阶功能实战6.1 图像识别优化pyaibote的图像识别支持多种匹配模式# 精确匹配默认 result self.find_image(wechat_icon.png) # 模糊匹配相似度80% result self.find_image(wechat_icon.png, threshold0.8) # 区域限定搜索 result self.find_image(wechat_icon.png, rect(100,200,300,400))实际项目中建议把常用图片素材放在单独目录用相对路径引用ICON_DIR os.path.join(os.path.dirname(__file__), icons) self.find_image(os.path.join(ICON_DIR, home.png))6.2 多设备管理如果需要控制多台手机可以这样处理devices { 小米12: (192.168.1.101, 8888), 华为Mate40: (192.168.1.102, 8889) } for name, (ip, port) in devices.items(): bot MyBot() bot.connect(ip, port) bot.start_app(com.tencent.mm)7. 常见问题排查连接超时问题检查电脑防火墙是否放行端口确认手机端输入的IP和端口正确尝试关闭电脑的IPv6协议脚本执行中断确保手机没有进入休眠关闭省电模式检查是否误触了屏幕锁图像识别失败截图对比原始图片是否有差异调整threshold参数考虑使用OCR文字识别作为备用方案最近帮客户部署时遇到一个典型问题脚本在夜间执行总是失败。后来发现是手机自动开启了护眼模式导致颜色识别异常。解决方法是在脚本开头强制关闭护眼模式self.set_screen_normal()