在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的形式来调用:
但是在黑盒测试(只有APK)中,R.id不可见,那么我们该如何使用呢?
这里是我自己封装的一个方法:
链接:http://blog.sina.com.cn/s/blog_64f57267010178au.html
如果我们想在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
相关文章推荐
- 在robotium中使用ID
- robotium 使用id来点击View
- 在Robotium中使用ID
- Robotium的id使用
- 在Robotium中使用ID
- 在Robotium中使用ID
- 在Robotium中使用ID
- 在Robotium中使用ID
- 在Robotium中使用ID
- 在Robotium中使用ID
- 使用udev方式挂载的asm查看对应的物理盘scsi_id
- 使用adb时,为什么只有RockChip的ID需要加入到adb_usb.ini文件里呢?
- 使用info.plist(或工程名-info.plist)向程序中添加软件Build ID或者版本号信息
- 使用Spring security,遇到从HTTPS页面重定向到HTTP页面时会丢失JSESSIONID的问题
- 78 使用getIdentifier()获取资源Id
- ASP.NET 缓存(五)--使用文件依赖项缓存页输出http://www.opent.cn/?action=show&id=192
- 分页过程中SQL使用了 id in()方法
- androidの自定义控件View在Activity中使用findByViewId得到结果为null,解决方法。。
- AngularJS 使用 ng-repeat 为标签设置唯一ID
- 使用SQL Server 获取插入记录后的ID(自动编号)