当前位置: 首页 > news >正文

【保姆级教程】解决 uiautomator2+weditor 连接模拟器的全流程问题(以 MuMu 为例)

在使用 uiautomator2 进行 Android 自动化测试时,很多开发者会遇到设备连接、weditor 启动失败等问题。本文以 MuMu 模拟器为例,详细记录从环境搭建到解决各类报错的全过程,帮助大家快速避坑。

一、核心工具与环境准备

1. 必备工具

  • Python 3.6+uiautomator2 和 weditor 的运行环境
  • ADB 工具:用于设备通信(Android SDK Platform Tools)
  • MuMu 模拟器:本文以 MuMu 为例,其他模拟器(夜神、雷电等)流程类似
  • uiautomator2:Android 自动化库
  • weditor:界面元素分析工具

2. 环境安装步骤

bash

# 安装uiautomator2
pip install uiautomator2# 安装weditor
pip install weditor# 初始化uiautomator2(向设备安装ATX服务)
python -m uiautomator2 init

二、常见问题与解决方案

问题 1:ADB 无法识别模拟器(adb devices无设备)

现象

执行 adb devices 后,输出为空或仅显示 List of devices attached

解决步骤:
  1. 开启模拟器开发者模式

    • 模拟器中打开「设置→关于手机」,连续点击「版本号」7 次激活开发者模式。
    • 返回设置,进入「开发者选项」,勾选「USB 调试」(部分版本需勾选「USB 调试(安全设置)」)。
  2. 确认模拟器 ADB 端口

    • MuMu 模拟器端口:旧版7555,新版16384(可在多开器中查看)。
    • 手动连接:adb connect 127.0.0.1:16384(替换为实际端口)。
  3. 重启 ADB 服务

    bash

    adb kill-server  # 关闭服务
    adb start-server  # 重启服务
    

问题 2:weditor 提示 “Local server not started”

现象

执行 weditor 或 python -m weditor 后,浏览器提示服务未启动。

解决步骤:
  1. 清理残留进程

    • 打开任务管理器,结束所有python.exe进程(避免端口占用)。
  2. 用绝对路径启动:直接指定 Python 安装路径,避免环境变量问题:

    bash

    "D:\pyversion\python3.10\python.exe" -m weditor  # 替换为你的Python路径
    
  3. 更换端口启动:若默认端口17310被占用,指定新端口:

    bash

    python -m weditor --port 17311  # 访问 http://127.0.0.1:17311
    
  4. 重装依赖:若服务文件损坏,卸载后重新安装:

    bash

    pip uninstall weditor uiautomator2 -y
    pip install weditor uiautomator2 --upgrade
    

问题 3:weditor 连接设备时报错 AttributeError: 'Device' object has no attribute 'address'

现象

在 weditor 中输入设备名并点击Connect后,控制台报错,提示address属性不存在。

解决步骤:

这是weditoruiautomator2版本兼容问题,需修改源码:

  1. 找到报错文件:路径:D:\pyversion\python3.10\lib\site-packages\weditor\web\handlers\page.py(根据实际 Python 路径调整)。

  2. 修改代码:打开文件,找到第 80 行(或报错行):

    python

    运行

    ws_addr = get_device(id).device.address.replace("http://", "ws://")
    

    address替换为wlan_ip

    python

    运行

    ws_addr = get_device(id).device.wlan_ip.replace("http://", "ws://")
    
  3. 重启 weditor:修改后保存文件,重新启动服务即可正常连接。

问题 4:设备显示 “unauthorized”(未授权)

现象

adb devices 显示设备状态为 unauthorized

解决步骤:
  1. 重启模拟器,等待弹出「允许 USB 调试」弹窗,点击「确定」。
  2. 若未弹窗,执行 adb kill-server 后重新连接设备。

三、成功连接后的操作流程

  1. 验证设备连接:执行 adb devices,确保设备状态为device(如emulator-5554 device)。

  2. 启动 weditor

    bash

    python -m weditor
    

    浏览器访问 http://127.0.0.1:17310,在设备输入框中填写emulator-5554,点击Connect

  3. 分析界面元素:点击左侧模拟器界面中的元素,右侧会显示其属性(如resourceIdtext),直接复制生成的代码到自动化脚本中使用。

四、总结

  1. 核心前提:确保 ADB 能识别设备(adb devices有输出),模拟器开启 USB 调试。
  2. weditor 启动:优先用python -m weditor,端口冲突时换端口,进程残留时手动清理。
  3. 版本兼容:遇到属性错误时,通过修改源码或降级依赖版本解决。
http://www.dtcms.com/a/435019.html

相关文章:

  • 怎样做外部网站推广做网站税率
  • 如何实现午休自动播放音乐并定时关闭?
  • 20251002——在MAXWELL中将3D实体变透明
  • php网站建设外国参考文献中小企业商务网站建设
  • 关于K-means和FCM的凸性问题讨论
  • 2025年渗透测试面试题总结-97(题目+回答)
  • 将图片中的图形转换为可编辑的 PPT 图形
  • 锦州宝地建设集团有限公司网站中文域名查询
  • 怎么自己做刷东西的网站苏州seo排名优化课程
  • 外贸免费p2p网站建设煤棚网架公司
  • [工作流节点7] 新增子表数据的自动化实现 —— 明道云子表自动新增全指南
  • 微网站建设多少钱seo优化有百度系和什么
  • WordPress的woo商店插件怎么实现中文版
  • 什么网站的页面好看公司免费建网站
  • 数据结构---栈的实现
  • 模板网站和定制网站的区别马拉松网站建设
  • 一文快速入门 MongoDB 、MongoDB 8.2 下载安装、增删改查操作、索引、SpringBoot整合 Spring Data MongoDB
  • 【赵渝强老师】MongoDB的分布式存储架构
  • 网站优化案例分析如何连接到网站服务器
  • 成都学生做网站ftp网站怎么建
  • 中心理解题1【转折关系、主题词】
  • 6-扩展内容
  • 教师指南:利用Vibes与AI提示词提升课堂短视频互动与趣味性
  • 嵌入式-Wno-cpp编译选项
  • 怎么做公益网站用html5做的网站过程
  • 做视频必须知道的一些网站山东天成水利建设有限公司网站
  • LunaTranslator_x64_win10_v10.8.0安装教程(附详细步骤+下载后怎么安装)
  • 上海策朋网站设计公司15年做那个网站致富
  • [免费]基于Python的Flask+Vue进销存仓库管理系统【论文+源码+SQL脚本】
  • 做优惠券网站泰安北京网站建设