在Robotium中使用ID

本文介绍了如何在Robotium框架中利用ID来定位和操作UI控件,包括字符串和数字ID形式的使用,并提供了一个自定义方法用于简化此过程。此外,还详细阐述了在黑盒测试场景下如何通过获取ID来实现控件的点击操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载地址:http://mlzx1991.blog.51cto.com/5800810/1142141

作者:逍遥天空

在Robotium的API中不提供使用ID的方式。

如果我们想在Robotium中使用ID就需要自己通过ID来找到控件的实例,然后通过Robotium的API对实例进行操作来达到目的。
当然了。如果有童鞋有兴趣也可以自己将这个封装起来以便使用。
在说方法之前,我不得不先说说ID的几种形式:
1.字符串形式。例如id/btn_Example我们在源码的布局里面写的,HierarchyView中看见的,都是这种。
2.数字形式。例如0x7f070012,我们可以打开R.java。里面就体现了String形式和int形式的对应关系。
在白盒测试(有源码)中,我们可以直接使用R.id的形式来调用:

 
  1. View view=solo.getView(R.id.btn_Example);//获取View 
  2. solo.clickOnView(view);//点击 


但是在黑盒测试(只有APK)中,R.id不可见,那么我们该如何使用呢?

 
  1. Activity act=solo.getCurrentActivity();//获取Activity 
  2. int id=act.getResources().getIdentifier("btn_Example""id", act.getPackageName());//通过String的id获取int的id 
  3. View view=act.findViewById(id);//获取View 
  4. solo.clickOnView(view);//点击 


这里是我自己封装的一个方法:

 

 
  1. private boolean clickById(String id) throws Exception{  
  2.         if(id==""){  
  3.             return false;  
  4.         }  
  5.         try{  
  6.             Activity act=solo.getCurrentActivity();//获取当前Activity  
  7.             int id=act.getResources().getIdentifier(id, "id", solo.getCurrentActivity().getPackageName());//获取id  
  8.             View view=solo.getView(id);//得到View  
  9.             solo.clickOnView(view);//点击  
  10.         }catch(Exception ex){  
  11.             Log.e("Exception", ex.getMessage());  
  12.             throw ex;  
  13.         }  
  14.         return true;  
  15.     }  

 

本文出自 “逍遥天空” 博客,请务必保留此出处http://mlzx1991.blog.51cto.com/5800810/1142141


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值