关闭

Robotium的id使用

1329人阅读 评论(1) 收藏 举报
分类:
在Robotium的API中不提供使用ID的方式。
如果我们想在Robotium中使用ID就需要自己通过ID来找到控件的实例,然后通过Robotium的API对实例进行操作来达到目的。
当然了。如果有童鞋有兴趣也可以自己将这个封装起来以便使用。
在说方法之前,我不得不先说说ID的几种形式:
1.字符串形式。例如id/btn_Example我们在源码的布局里面写的,HierarchyView中看见的,都是这种。
2.数字形式。例如0x7f070012,我们可以打开R.java。里面就体现了String形式和int形式的对应关系。
在白盒测试(有源码)中,我们可以直接使用R.id的形式来调用:
[code=java]View view=solo.getView(R.id.btn_Example);//获取View
solo.clickOnView(view);//点击[/code]
但是在黑盒测试(只有APK)中,R.id不可见,那么我们该如何使用呢?
[code=java]
Activity act=solo.getCurrentActivity();//获取Activity
int id=act.getResources().getIdentifier("btn_Example", "id", act.getPackageName());//通过String的id获取int的id
View view=act.findViewById(id);//获取View
solo.clickOnView(view);//点击
[/code]
这里是我自己封装的一个方法:
[code=java]
private boolean clickById(String id) throws Exception{
  if(id==""){
   return false;
  }
  try{
   Activity act=solo.getCurrentActivity();//获取当前Activity
   int id=act.getResources().getIdentifier(id, "id", solo.getCurrentActivity().getPackageName());//获取id
   View view=solo.getView(id);//得到View
   solo.clickOnView(view);//点击
  }catch(Exception ex){
   Log.e("Exception", ex.getMessage());
   throw ex;
  }
  return true;
 }
[/code]
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:99709次
    • 积分:1234
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:40篇
    • 译文:1篇
    • 评论:12条
    文章分类
    最新评论