在Robotium中使用ID

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

在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============

飘过。。。  赶来助威!

时间: 2024-10-06 11:24:16

在Robotium中使用ID的相关文章

robotium 中通过id获取 View 以及进行相应的操作

robotium 中id的几种表现形式 1)字符串形式:例如id/btn_example,源码中的布局里些的hierachy 中看见的都是这种. 2)数字形式:例如0x7f0700D,打开R.java里面体现了String形式和int形式对应关系. 白盒测试中,直接使用R.id的形式来调用 View view =solo.getView(R.id.btn_example)://获取view solo.clickOnView(view);//点击 黑盒测试中,R.id 不可见 Activity a

android robotium获取相同id的的控件

android robotium获取相同id的的控件:http://blog.csdn.net/busjb/article/details/16808551 robotium中同一id的怎么确定点击哪一个:http://zhidao.baidu.com/link?url=QMTQ86nIqfGS8l1xkiytlIguSnG3UZC-C77q3qoGTfOc4AlzJNqVobbfYtfElhFEaEXfnmfla3spwC9snUfAeZGJykAlWLIDHfvTjuimXPG androi

关于void*类型的用法(相当于OC中的id类型)

关于void*类型的用法(相当于OC中的id类型) 1.C++语言在对于void* 类型的使用很特别,因为void* 可以间接引用任何其他数据类型的指针,比如int*.float*甚至抽象数据类型的指针,而且可以从void* 强制转换为任何其他数据类型的指针,所以使用起来有时候会比较危险.如果开始将一个void*的指针间接引用一个float*的指针,然后将这个void*指针强制转化为一个int*类型的指针,编译器不会给出错误甚至警告,但是输出的数据却匪夷所思,如果再强制转换会float*则不会出

CSS中的id选择器和class选择器简单介绍

<!-- CSS中选择器 CSS有两种选择器id和class,总之如果说你想在HTML元素中设置CSS属性, 你要在元素中设置id和class选择器.那么我们现在来一个一个的介绍这两中选择器 id选择器: HTML中的元素属性用id来设置id选择器,CSS中的id选择器是用"#"来定义的 比如: #para1 { text-align:center; color:red; } 这样就定义了一个选择器,什么是选择器,在网上查的是说需要改变的HTML元素,很正确,在一开始我们的内部样

删除数据表中除id外其他字段相同的冗余信息

删除一个信息表中除id外其他字段都相同的冗余信息,如下 id name addr 1 a b 2 a b 3 b c 删除这个表中的冗余信息 即应该是 id name addr 1 a b 3 b c 设table为t Sql:delete from tableName where id not in (select min(id) from tableName group by name, addr…)

jquery中的$(&quot;#id&quot;)与document.getElementById(&quot;id&quot;)的区别

以前一直认为jquery中的$("#id")和document.getElementByIdx_x("id")得到的效果是一样的,今天做特效的时候才发现并不是这么一回事,通过测试得到: 1.alert($("#div"))得到的是[object Object] 2.alert(document.getElementById("div"))得到的是[object HTMLDivElement] 3.alert($("#

OTG中的ID脚风波释疑

1. 概要 OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Device,充当USB Device,设备的USB Host/USB Device角色可以通过HNP(主机交换协议)切换.OTG设备连接时不能跨越USB Hub,如果跨越USB Hub则失去HNP功能.A-Device/B-Device与USB Host/Device没有必然的关系,主机切换完毕后A-Device变

css中使用id和class 的不同

在 CSS 中,类选择器以一个点号显示: .center {text-align: center} 在上面的例子中,所有拥有 center 类的 HTML 元素均为居中. 在下面的 HTML 代码中,h1 和 p 元素都有 center 类.这意味着两者都将遵守 ".center" 选择器中的规则. <h1 class="center"> This heading will be center-aligned </h1> <p clas

rails中params[:id]与params["id"]分析

写这个帖子的缘由是因为在页面参数传到rails的controller时用params[:]和params[""]都可以取到值: ? 1 2 3 4 5 6 [1] pry(#<BooksController>)> params => {"action"=>"show", "controller"=>"books", "id"=>"382