uiautomator2 一直用的好好的,突然使用weditor 无法获取UI元素
经过一番用deepSeek 搜索,把weditor卸载重新安装,还是不行,在快要绝望查看uiautomator2 不是最新版,把uiautomator2 升级到最新版本,又恢复正常使用了,太坑了
顺便再贴一下weditor 工作原理:
weditor 是一个基于 Web 的 UI 查看器和调试工具,专门为 uiautomator2 设计。它可以帮助开发者实时查看 Android 设备的 UI 层次结构,并支持元素定位、属性查看、操作录制等功能。以下是 weditor 的工作原理和关键组件:
1. 核心工作原理
weditor 的工作原理可以概括为以下几个步骤:
(1) 与设备通信
-
weditor通过uiautomator2与 Android 设备通信。 -
uiautomator2在设备上运行一个后台服务(atx-agent),该服务负责与 PC 端的weditor进行数据交换。
(2) 获取 UI 层次结构
-
weditor通过uiautomator2调用 Android 的UIAutomator框架,获取当前屏幕的 UI 层次结构(XML 格式)。 -
这个 UI 层次结构包含了屏幕上所有控件的属性信息,例如:
-
控件类型(
class) -
文本内容(
text) -
资源 ID(
resource-id) -
坐标位置(
bounds) -
其他属性(如
clickable、enabled等)。
-
(3) 渲染 UI 层次结构
-
weditor将获取到的 UI 层次结构(XML 格式)解析并渲染成一个可视化的树状结构。 -
用户可以通过浏览器访问
weditor的 Web 界面,实时查看设备的 UI 层次结构。
(4) 交互操作
-
用户可以在
weditor的 Web 界面上点击某个控件,查看其属性。 -
weditor支持通过界面操作设备,例如点击、输入文本、滑动等。这些操作会通过uiautomator2传递到设备上执行。
2. 关键组件
weditor 的实现依赖于以下关键组件:
(1) uiautomator2
-
uiautomator2是weditor的核心依赖,负责与 Android 设备通信。 -
它通过
atx-agent在设备上运行一个后台服务,用于获取 UI 层次结构和执行操作。
(2) atx-agent
-
atx-agent是uiautomator2的设备端服务,运行在 Android 设备上。 -
它负责接收 PC 端的指令(如获取 UI 层次结构、执行操作等),并将结果返回给 PC 端。
(3) Web 服务器
-
weditor启动一个本地的 Web 服务器,用户可以通过浏览器访问其界面。 -
Web 服务器负责将 UI 层次结构渲染成可视化的树状结构,并处理用户的操作指令。
(4) 前端界面
-
weditor的前端界面基于 HTML、JavaScript 和 CSS 实现。 -
它提供了一个交互式的 UI 查看器,用户可以通过界面查看控件属性、执行操作等。
3. 工作流程
以下是 weditor 的典型工作流程:
-
用户在 PC 上启动
weditor。 -
weditor启动一个本地 Web 服务器,并打开浏览器访问其界面。 -
weditor通过uiautomator2连接到 Android 设备。 -
weditor从设备获取当前屏幕的 UI 层次结构,并渲染到 Web 界面。 -
用户可以在 Web 界面上查看控件属性、执行操作(如点击、输入文本等)。
-
用户的操作通过
uiautomator2传递到设备上执行。
4. 优点
-
实时性:可以实时查看设备的 UI 层次结构。
-
可视化:以树状结构展示 UI 层次,方便查看和调试。
-
交互性:支持通过界面操作设备,简化了调试流程。
-
跨平台:基于 Web 实现,可以在任何操作系统上使用。
5. 使用场景
-
UI 自动化测试:用于定位元素、调试脚本。
-
开发调试:查看 UI 层次结构,验证控件属性。
-
操作录制:录制用户操作并生成自动化脚本。
5万+

被折叠的 条评论
为什么被折叠?



