UIAutomator2.0详解(UIDevice篇----获取设备名称和Package名称)

UIDevice提供了4个方法(其中有1个方法废弃),用来获取设备和Package名称。分别是

(1)public String getCurrentActivityName ()

用于获取当前Activity的Name,但官方文档中,注明该方法可信度不高,且被弃用。所以无需考虑。

(2)public String getCurrentPackageName ()

获取当前APP Package的Name,而非当前Activity所在Package的Name。

(3)public String getLauncherPackageName ()

获取启动器(Launcher)所在Package的Name,并非测试APP启动Activity所在Package的Name。

(4)public String getProductName ()

获取设备名称。

我们还是用一个简单的Demo来演示以上方法的使用。

测试需求如下:

在不同的Activity中获取设备名称和Package名称。
两个Activity分别位于:com.breakloop.test和com.breakloop.test2
两个Activity名称分别为:MainActivity和Main2Activity

测试案例代码:

@Test
    public void NameTestCase1(){
        String packageName="com.breakloop.test";
        String activityName=".MainActivity";
        String value;

        //(1)start APP
        Log.i(TAG, "TestCase1: open APP");
        Utils.startAPP(mDevice,packageName,activityName);

        //(2)wait 1s
        mDevice.waitForWindowUpdate(packageName,1000);
        Log.i(TAG, "TestCase1: wait for 1s");

        //(3)Get Infos
        Log.i(TAG, "TestCase1: Get Package Name = "+mDevice.getProductName() + " in MainActivity");
        Log.i(TAG, "TestCase1: Get Current Package Name = "+mDevice.getCurrentPackageName() + " in MainActivity");
        Log.i(TAG, "TestCase1: Get Launcher Package Name = "+mDevice.getLauncherPackageName() + " in MainActivity");

        //(3)Jump to another Activity and get Infos again
        UiObject2 button=mDevice.findObject(By.res("com.breakloop.test:id/btn_goto2"));

        if(button==null){
            Log.i(TAG, "TestCase1: Do not find Button");
        }else {
            if(button.isEnabled()){
                button.click();
                mDevice.waitForWindowUpdate(packageName,1000);

                Log.i(TAG, "TestCase1: Get Package Name = "+mDevice.getProductName() + " in Main2Activity");
                Log.i(TAG, "TestCase1: Get Current Package Name = "+mDevice.getCurrentPackageName() + " in Main2Activity");
                Log.i(TAG, "TestCase1: Get Launcher Package Name = "+mDevice.getLauncherPackageName() + " in Main2Activity");
            }
        }

        Utils.closeAPP(mDevice,packageName);
    }

测试结果如下:

这里写图片描述

可见,
(a)在不同activity下获取的信息完全相同。
(b)Activity Name确实不可信。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值