UiAutomator——常用类说明

本文深入解析了UiAutomator的核心类及其作用,重点阐述了如何通过UiSelector定位UI元素,并通过UiAutomatorBridge与AccessibilityService交互实现控件点击操作。详细介绍了AccessibilityEvent和AccessibilityNodeInfo的概念与应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UiAutomator对外提供UiAutomatorTestCaseUiDeviceUiSelectorUiObjectUiCollectionUiScrollable等类,其作用如下:

l  UiAutomatorTestCase :继承自Junit TestCase Junit),对外提供setupteardown等,以便初始化用例、清除环境等。

l  UiDevice:此类主要包含了获取设备状态信息,和模拟用户至于设备的操作两类APIUiSelector,主要是通过一定查询方式,定位到所要操作的UI元素。

l  UiObjectUiObject可代表页面的任意元素,它的各种属性定位通常通过UiSelector来完成。

l  UiCollectionUiCollection一般与UiSelector连用,如它的构造函数也要求提供Uiselector: UiCollection(UiSelector selector)。它的API较少,主要用以从Uiselector筛选出的元素集中挑出所要的元素:getChildByDescription(), getChildByInstance(), getChildByText() ,以及统计元素集的个数getChildCount()

l  UiScrollableUiScrollable 用来表示可以滑动的界面元素,其继承关系为UiObject -> UiCollection ->UiScrollable

UiAutomator的实现方式与HierachyView+Monkey有很大不一样。以控件点击操作为例,其实现流程大致如下:

定义一个点击对象Object,该对象则通过UiSelector对象定位到具体的控件。而UiSelector则通过UiAutomatorBridge(它可看做是UiSelectorAccesibilityService之间的连接器),将查询内容(AccessibilityNodeInfo)和输入事件(AccessibilityEvent)传给AccessibilityService。实际业务过程比这复杂的多。这样,就实现了对某个控件的查找或点击操作。备注:AccessibilityEvent,所有可操纵的UI元素都定义为一个AccessibilityEeventtAccessibilityNodeInfo指视窗中的组件树节点。    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值