前段时间用到了uiautomator,完了之后就没再继续把关于自己学习到的关于uiautomator的东西整理出来,这不是一种好习惯。今天得空,这里给出一个uiautomator使用的例子。
前面提到,在uiautomator中每一个想要模拟操作的ui控件都是UiObject的对象,UiColletion和UiScollable都是UiOject的子类。
UiSelector用于条件筛选,根据text,description,packegeName,index还有状态信息等来取出符合条件的控件。其对象总是作为UiObject的构造噐参数。需要注意的是,官网中对于UiObjectNotFoundException,提到“Generated in test runs when aUiSelector
selector could not be matched to any UI element displayed.”,即该异常在UiSelector没有任何匹配的时候抛出。对于如下代码
UiObject appsTab = new UiObject(new UiSelector().text("Apps"));
即使没有找到text为Apps的控件,也没有抛出异常,而是在调用appsTab方法(如appsTab.click())时才回抛出。因为 public UiObject(UiSelector selector) {
mSelector = selector;
}
public boolean click() throws UiObjectNotFoundException {
.......
}
这时候可以UiObject.exists()来判断该对象是否存在。
下面是“便签”应用新建,删除,修改操作测试的示例