在自动化测试执行case的时候,经常会有各种的权限框,或者第一次进入文件或者应用,都会弹出权限框,如果不做处理,case就会失败,如何解决这个问题,就需要我们用到的UiWatcher。
看代码:
@Override
public void setUp() throws Exception {
super.setUp();
mDevice.registerWatcher("x1", new UiWatcher() {
UiObject warning = new UiObject(new UiSelector().resourceId("com.android.packageinstaller:id/button_group"));
@Override
public boolean checkForCondition() {
if (warning.exists()) {
UiObject allowButton = new UiObject(new UiSelector().text("ALLOW"));
try {
allowButton.click();
} catch (UiObjectNotFoundException e1) {
e1.printStackTrace();
}
return true;
}
return false;
}
});
mDevice.runWatchers();
mGalleryPage = new GalleryPage(mDevice);
}
逻辑就是我们先注册一个watcher,然后warning这就是弹出的权限框,判断它,假如它弹出这个框,后面就点击ALLOW,如果没有弹出这个权限框,case就直接运行了。