UIAutomator中一些类和接口的意义
介绍一下Uiautomator中每一个类,接口,异常类的作用,方便在使用的时候具体导入哪一个包
Uiautomator类中每一个类的作用:
com.android.uiautomator.core.UiCollection:
UiCollection代表元素条目的集合,例如音乐专辑中的歌曲或邮箱收件箱列表。类似UiObject,需要指定UiSelector来构造UiCollection。 用于构造UiCollection的UiSelector一般搜索容器或包裹器类的界面元素,这样的容器或包裹器类的界面元素包含其他子UI元素,例如包含子元素的布局视图。下面举例说明,下面的代码片段演示如何构造一个UiCollection实例,该实例代表一个包含在FrameLayout布局中的视频专辑
在测试时,可以调用UiDevice实例的方法来检查不同属性的状态,如当前的屏幕旋转方向货展示大小。测试代码还能使用UiDevice实例来执行设备级的操作,如强制设备横竖屏,按压d-pad硬件按钮,或按压主屏幕键和菜单键。
com.android.uiautomator.core.UiObject:
UiObject代表一个UI元素。为创建一个UiObject实例,使用用来描述如何搜索、选定UI元素的UiSelector.
com.android.uiautomator.core.UiScrollable:
UiScrollable代码可滑动的UI元素集合。可以使用UiScrollable类来模拟界面的横竖屏的滑动。该技术可以应用于界面元素隐藏在屏幕外,可以通过滑动来展示的情况下。
com.android.uiautomator.core.UiSelector:
代表一种搜索标准,可以在当前展示界面上查询和获取特定元素的句柄。若找到多于一个的匹配元素,则返回布局层次结构上的第一个匹配元素作为目标UiObject。当构造一个UiSelector对象时,可以使用链式调用多个属性来缩小查询范围。如无匹配元素,则返回异常UiAutomatorObjectNotFoundException。你还可以使用childSelector() 方法来嵌套多个Uiselector实例。例如。下面的代码演示如何制定查询来定位在当前界面的第一个ListView,然后在返回的ListView内定位一个带有Apps文本属性的界面元素。
com.android.uiautomator.core.Configurator:
运行uiautomator测试程序时设置主要的参数。
Uiautomator接口中每个接口的作用:
com.android.uiautomator.core.UiWatcher:
代表待测设备上的条件监听器
com.android.uiautomator.testrunner.IAutomationSupport:
提供运行测试的辅助支持
com.android.uiautomator.testrunner.UiAutomatorTestCase:
定义运行多个测试用例时的环境。所有的uiautomator测试用例都需要集成该类。
Exception 异常
com.android.uiautomator.core.UiObjectNotFoundException:
UiSelector不匹配当前屏幕的界面元素时,抛出异常
滚动到某个对象 UiScrollable 的使用
返回值 API 说明
boolean scrollIntoView(UiSelector selector) 滚动到条件元素所在位置,并且尽量让其居于屏幕中央
boolean scrollIntoView(UiObject obj) 滚动到对象所在位置,并且尽量让其居于屏幕中央
boolean scrollTextIntoView(String text) 滚动到文本对象所在位置,并且尽量让其居于屏幕中央
boolean scrollDescriptionIntoView(String text)滚动到描述所在位置,并且尽量让其居于屏幕中央
boolean scrollToBeginning(int maxSwipes) 自定义次数滚动到开始位置
boolean scrollToBeginning(int maxSwipes,int steps) 自定义次数和步长滚动到开始位置
boolean scrollToEnd(int maxSwipes,int steps) 自定义次数和步长滚动到结束位置
boolean scrollToEnd(int maxSwipes) 自定义次数滚动到结束位置
例子:
UiScrollable scoll=new UiScrollable(new UiSelector().className("android.widget.ListView"));
UiSelector selector=new UiSelector().text("糖糖");
scroll.scrollIntoView(selector);
UiOject obj=new UiObject(selector);
scroll.scrollIntoView(obj);