Uiautomator一个常用脚本
UiObject allAppsButton = new UiObject(new UiSelector().description("Apps"));
// 模拟点击所有应用按钮,并等待所有应用界面起来allAppsButton.clickAndWaitForNewWindow();
分析第一步源码跟踪:
1、new UiSelector().description("Apps")找控件封装成UiSelect对象
public UiSelector description(String desc) {
return buildSelector(SELECTOR_DESCRIPTION, desc); //SELECTOR_DESCRIPTION是一个常量,代表使用何种方式找控件
}
private UiSelector buildSelector(int selectorId, Object selectorValue) {
UiSelector selector = new UiSelector(this);
if (selectorId == SELECTOR_CHILD || selectorId == SELECTOR_PARENT)
selector.getLastSubSelector().mSelectorAttributes.put(selectorId, selectorValue); //找父控件或子控件
else
selector.mSelectorAttributes.put(selectorId, selectorValue); //mSelectorAttributes是一个集合类,把查找类型和值都放进集合
return selector;
} //新建一个UiSelect对象,包含了该集合
2、看clickAndWaitForNewWindow()
public boolean clickAndWaitForNewWindow() throws UiObjectNotFoundException {
Tracer.trace();
return clickAndWaitForNewWindow(WAIT_FOR_WINDOW_TMEOUT); //WAIT_FOR_WINDOW_TMEOUT超时时间
}
public boolean clickAndWaitForNewWindow(long timeout) throws UiObjectNotFoundException {
Tracer.trace(timeout);
Accessibili