Java Code Examples for android.support.test.uiautomator.UiWatcher

The following are top voted examples for showing how to use android.support.test.uiautomator.UiWatcher. These examples are extracted from open source projects. You can vote up the examples you like and your votes will be used in our system to generate more good examples.
Example 1
Project: SunmiAuto   File: TestUtils.java   View source code 6 votes vote down vote up
public static void uiwatchSuite(){
    device.registerWatcher("crash", new UiWatcher() {
        @Override
        public boolean checkForCondition() {
            UiObject2 crashObj = device.findObject(By.textEndsWith("已停止运行。"));
            Log.v("myautotest","enterWatch");
            if(crashObj != null){
                sleep(SHORT_SLEEP);
                device.findObject(By.text("确定")).clickAndWait(Until.newWindow(),LONG_WAIT);
                return true;
            }
            return false;
        }
    });

}
 
Example 2
Project: SunmiAuto   File: SunmiAppStore.java   View source code 5 votes vote down vote up
@Test
public void test008InstallAppFromHot() throws UiObjectNotFoundException, IOException {
    device.registerWatcher("downLoadFail", new UiWatcher() {
        @Override
        public boolean checkForCondition() {
            UiObject2 confirmObj = device.findObject(By.res("woyou.market:id/tv_confirm"));
            if(null != confirmObj){
                confirmObj.clickAndWait(Until.newWindow(),LONG_WAIT);
                return true;
            }
            return false;
        }
    });

    TestUtils.screenshotCap("appStoreHome");
    UiObject2 hotObj = device.findObject(By.res("woyou.market:id/tv_hot_all").text("全部"));
    hotObj.clickAndWait(Until.newWindow(), LONG_WAIT);
    TestUtils.screenshotCap("allHotAppsInterface");
    UiScrollable hotAllScroll = new UiScrollable(new UiSelector().resourceId("woyou.market:id/list_view"));
    hotAllScroll.scrollTextIntoView("安装");
    TestUtils.screenshotCap("ScrollToInstallableInterface");
    UiObject2 installObj = device.findObject(By.text("安装"));
    UiObject2 fullInstallObj = installObj.getParent().getParent();
    UiObject2 installNameObj = fullInstallObj.findObject(By.res("woyou.market:id/tv_name"));
    String name = installNameObj.getText();
    UiObject2 installObjnew =  fullInstallObj.getParent().findObject(By.text("安装"));
    installObjnew.click();
    TestUtils.screenshotCap("afterClickInstallBtn");
    boolean installSucc = installObjnew.wait(Until.textEquals("打开"),DOWNLOAD_WAIT);
    if(!installSucc){
        installObjnew.click();
        TestUtils.screenshotCap("installFailed");
        Assert.fail("下载安装了300秒,仍然未安装好,暂停了下载");
    }
    TestUtils.screenshotCap("afterInstalled");
    device.pressHome();
    Boolean b = TestUtils.findAppByText(name);
    TestUtils.screenshotCap("findInstalledApp");
    Assert.assertTrue("桌面上未找到\""+name+"\"这个应用",b);
}
 
Example 3
Project: SunmiAuto   File: SunmiAppStore_v3_3_15.java   View source code 4 votes vote down vote up
@Category(CategoryAppStoreTests_v3_3_15.class)
@Test
public void test008InstallAppFromHot() throws UiObjectNotFoundException, IOException {
    device.registerWatcher("downLoadFail", new UiWatcher() {
        @Override
        public boolean checkForCondition() {
            UiObject2 confirmObj = device.findObject(By.res("woyou.market:id/tv_confirm"));
            if(null != confirmObj){
                confirmObj.clickAndWait(Until.newWindow(),LONG_WAIT);
                return true;
            }
            return false;
        }
    });

    TestUtils.screenshotCap("appStoreHome");
    UiObject2 hotObj = device.findObject(By.res("woyou.market:id/tv_hot_all").text("全部"));
    hotObj.clickAndWait(Until.newWindow(), LONG_WAIT);
    TestUtils.screenshotCap("allHotAppsInterface");
    UiScrollable hotAllScroll = new UiScrollable(new UiSelector().resourceId("woyou.market:id/list_view"));
    hotAllScroll.scrollTextIntoView("安装");
    TestUtils.screenshotCap("ScrollToInstallableInterface");
    UiObject2 installObj = device.findObject(By.text("安装"));
    UiObject2 fullInstallObj = installObj.getParent().getParent();
    UiObject2 installNameObj = fullInstallObj.findObject(By.res("woyou.market:id/tv_name"));
    String name = installNameObj.getText();
    UiObject2 installObjnew =  fullInstallObj.getParent().findObject(By.text("安装"));
    installObjnew.click();
    TestUtils.screenshotCap("afterClickInstallBtn");
    boolean installSucc = installObjnew.wait(Until.textEquals("打开"),DOWNLOAD_WAIT);
    if(!installSucc){
        installObjnew.click();
        TestUtils.screenshotCap("installFailed");
        Assert.fail("下载安装了300秒,仍然未安装好,暂停了下载");
    }
    TestUtils.screenshotCap("afterInstalled");
    device.pressHome();
    Boolean b = TestUtils.findAppByText(name);
    TestUtils.screenshotCap("findInstalledApp");
    Assert.assertTrue("桌面上未找到\""+name+"\"这个应用",b);
}
 
Example 4
Project: AppCrawler   File: UiWatchers.java   View source code 4 votes vote down vote up
/**
 * We can use the UiDevice registerWatcher to register a small script to be
 * executed when the framework is waiting for a control to appear. Waiting may
 * be the cause of an unexpected dialog on the screen and it is the time when
 * the framework runs the registered watchers. This is a sample watcher
 * looking for ANR and crashes. it closes it and moves on. You should create
 * your own watchers and handle error logging properly for your type of tests.
 */
public void registerAnrAndCrashWatchers() {
    sDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());

    sDevice.registerWatcher("ANR", new UiWatcher() {
        @Override
        public boolean checkForCondition() {
            return handleAnr();
        }
    });

    sDevice.registerWatcher("ANR2", new UiWatcher() {
        @Override
        public boolean checkForCondition() {
            return handleAnr2();
        }
    });

    sDevice.registerWatcher("CRASH", new UiWatcher() {
        @Override
        public boolean checkForCondition() {
            return handleCrash();
        }
    });

    sDevice.registerWatcher("CRASH2", new UiWatcher() {
        @Override
        public boolean checkForCondition() {
            return handleCrash2();
        }
    });

    //sDevice.registerWatcher("COMMONDIALOG", new UiWatcher() {
    //    @Override
    //    public boolean checkForCondition() {
    //        return handleCommonDialog();
    //    }
    //});

    Log.i(TAG, "Registed GUI Exception watchers");
}