zoukankan      html  css  js  c++  java
  • 老李分享:接电话之uiautomator 1

    老李分享:接电话之uiautomator

     

     poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。

    1.UiWatcher

    该接口中只有一个方法

     public abstract boolean checkForCondition ()  

    当我们通过UiSelector匹配控件的时候,如果失败后,会进入该方法进行验证。意思只要我们的控件找不到,都会进入该方法中,那么我们就可以在该方法中判断是否有电话打进来。首先我们去查看有电话打进来的界面,找到一个可以确定是接听界面就行。我们以拒绝接听按钮为标识(不缺钱的可以用接听电话为标识)。

    case的写法

    public class InCallTest extends UiAutomatorTestCase {
        private static final long TIME_OUT = 10 * 60 * 1000;
        private long currentTime;
        private boolean flag = true;

        long eslcape = 0;

        public void test_Call() throws InterruptedException,
                UiObjectNotFoundException {
            UiWatcher inComingWatcher = new MyWatcher();
            getUiDevice().registerWatcher("来电", inComingWatcher);
           
            getUiDevice().pressBack();
            UiObject dialButton = new UiObject(
                    new UiSelector()
                            .resourceId("com.android.sprdlauncher1:id/workspace"));
            System.out.println("waiting for incoming");
            currentTime = System.currentTimeMillis();
            while (flag && eslcape < TIME_OUT) {
                dialButton.clickAndWaitForNewWindow();
                eslcape = System.currentTimeMillis() - currentTime;
            }
            assertFalse("没有收到来电", flag);
        }

        class MyWatcher implements UiWatcher {

            @Override
            public boolean checkForCondition() {
                UiObject inCall = new UiObject(
                        new UiSelector()
                                .resourceId("com.android.dialer:id/IncomingCallRejectButton"));
               
                while (eslcape < TIME_OUT) {
                    if (inCall.exists()) {
                        System.out.println("you have a call");
                        try {
                            inCall.clickAndWaitForNewWindow();
                            flag = false;
                            return true;
                        } catch (UiObjectNotFoundException e) {
                            e.printStackTrace();
                        }
                    }
                    eslcape = System.currentTimeMillis() - currentTime;
                }
                return false;
            }
        }
    }

  • 相关阅读:
    2018 桂林ccpc现场赛 总结
    2018 南京icpc现场赛总结
    nowcoder 203J Graph Coloring I(dfs)
    nowcoder 203A Knight(贪心+打表)
    nowcoder 202H-卡牌游戏
    nowcoder 202F-平衡二叉树
    topcoder srm 738 div1 FindThePerfectTriangle(枚举)
    codeforces 1041 E.Vasya and Good Sequences(暴力?)
    hdu 3507 Print Article(dp+斜率优化)
    hdu 1007 Quoit Design(分治)
  • 原文地址:https://www.cnblogs.com/poptest/p/5110666.html
Copyright © 2011-2022 走看看