码迷,mamicode.com
首页 > 其他好文 > 详细

在Robotium中使用ID

时间:2014-10-17 11:32:04      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:io   ar   使用   java   sp   on   问题   cti   log   

============问题描述============


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

但是在黑盒测试中,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;

	}

============解决方案1============


我回复,你结贴吧

============解决方案2============


挽尊……为楼主挽尊……

============解决方案3============


飘过。。。  赶来助威!

在Robotium中使用ID

标签:io   ar   使用   java   sp   on   问题   cti   log   

原文地址:http://www.cnblogs.com/qibileiru/p/4030448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!