UiAutomator UiWatcher

来源:互联网 发布:ubuntu安装时合并分区 编辑:程序博客网 时间:2024/05/30 23:02

概要
UiWathcher类介绍与中断监听检查条件
监听器操作
检查监听器

UiWatcher 类介绍与中断监听检查条件

1.UiWathcer类说明
UiWatcher类说明

1)UiWathcher用于处理脚本执行过程中遇到的非预想的步骤
2)中断监听检查条件

监听器操作相关API

中断监听检查条件

检查监听器AAPI

演示代码

    /**     * UiWatcher 要放在所有的用例之前     * @throws UiObjectNotFoundException      * */    public void testWatcher() throws UiObjectNotFoundException{        //先要注册监听器        UiDevice.getInstance().registerWatcher("phone", new UiWatcher() {            //这个方法就是在监听器被调用后执行的方法            @Override            public boolean checkForCondition() {                UiObject sz = new UiObject(new UiSelector()                .text("设置"));                if(sz.exists()){                    System.out.println("回到了主屏幕");                    try {                        sz.clickAndWaitForNewWindow();                    } catch (UiObjectNotFoundException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                    return true;                }                return false;            }        });        //执行用例步骤        UiObject uia = new UiObject(new UiSelector().                className("android.widget.LinearLayout").                index(5)).getChild(new UiSelector().text("声音"));        //使用描述获取对象        UiObject uib = new UiObject(new UiSelector().                description("声音:向上导航"));        for(int i =0; i<20 ; i++){            System.out.println("当前循环:"+i);            //当运行10次 i= 10 的时候,            if(i==10){                //取消监听,在第10次循环后不会在有监听                UiDevice.getInstance().removeWatcher("phone");            }            uia.clickAndWaitForNewWindow();            sleep(2000);            uib.clickAndWaitForNewWindow();            sleep(2000);        }    }
0 0