您的位置:首页 > 其它

在Robotium中使用ID

2013-12-25 12:07 197 查看
在Robotium的API中不提供使用ID的方式。

如果我们想在Robotium中使用ID就需要自己通过ID来找到控件的实例,然后通过Robotium的API对实例进行操作来达到目的。

当然了。如果有童鞋有兴趣也可以自己将这个封装起来以便使用。

在说方法之前,我不得不先说说ID的几种形式:

1.字符串形式。例如id/btn_Example我们在源码的布局里面写的,HierarchyView中看见的,都是这种。

2.数字形式。例如0x7f070012,我们可以打开R.java。里面就体现了String形式和int形式的对应关系。

在白盒测试(有源码)中,我们可以直接使用R.id的形式来调用:

View view=solo.getView(R.id.btn_Example);//获取View

solo.clickOnView(view);//点击


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

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);//点击


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

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;

}


链接:http://blog.sina.com.cn/s/blog_64f57267010178au.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: