原文地址:在Robotium中使用ID作者:逍遥云翳

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

[转载]在Robotium中使用ID的更多相关文章

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

    robotium 中id的几种表现形式 1)字符串形式:例如id/btn_example,源码中的布局里些的hierachy 中看见的都是这种. 2)数字形式:例如0x7f0700D,打开R.java ...

  2. 【转载】Extjs 中id与itemId的区别

    为了方便表示或是指定一个组件的名称,我们通常会使用id或者itemId进行标识命名.(推荐尽量使用itemId,这样可以减少页面唯一标识而产生的冲突) id:        id是作为整个页面的Com ...

  3. 【转载】Python中的正则表达式教程

    本文http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 正则表达式经常被用到,而自己总是记不全,转载一份完整的以备不时之需. 1. ...

  4. 解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据

    我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据.好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的动 ...

  5. [转载]在网页中插入media,RealPlayer等控件

    [转载]在网页中插入media,RealPlayer等控件 (2012-11-02 20:27:43) 转载▼ 标签: 转载   原文地址:在网页中插入media,RealPlayer等控件作者:Mo ...

  6. 【转载】Innodb中的事务隔离级别和锁的关系

    前言 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式.同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力.所 ...

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

    删除一个信息表中除id外其他字段都相同的冗余信息,如下 id name addr 1 a b 2 a b 3 b c 删除这个表中的冗余信息 即应该是 id name addr 1 a b 3 b c ...

  8. 转载:WinForm中播放声音的三种方法

    转载:WinForm中播放声音的三种方法 金刚 winForm 播放声音 本文是转载的文章.原文出处:http://blog.csdn.net/jijunwu/article/details/4753 ...

  9. jQuery判断网页中的id是否有重复的

    From:http://blog.csdn.net/china_skag/article/details/6915323判断网页中的ID是否有重复的:指定ID判断 $(function(){ $(&q ...

随机推荐

  1. intellij idea中设置SVN插件教程

    1.选择VCS→Browser VCS Repository→Browse Subversion Repository 2.在弹出的SVN Repository菜单中,选择左上角的绿色“+”号,填写S ...

  2. Qt安装教程

    一.Qt下载 官网下载链接http://download.qt.io/archive/qt/,下载最新版 5.10 官网的下载网站有的时候可能会抽风,也可以选择国内的镜像下载源http://mirro ...

  3. 禁止ASP.NET MVC模型绑定时将空字符串绑定为null

    为model添加[DisplayFormat(ConvertEmptyStringToNull = false)] [Display(ResourceType = typeof(AppStrings) ...

  4. cms-帖子幻灯图片上传

    package com.open1111.controller.admin; import java.io.File;import java.util.Date;import java.util.Ha ...

  5. Python基础总结与实践

    Python简介 Python是一种动态解释型编程语言,在模块载入时将源码编译成字节码, 这些字节码被虚拟机PVM解释执行,其中解释执行是Python性能较低的主要原因: Python使用C语言编写, ...

  6. bzoj2600 [Ioi2011]ricehub

    Description 乡间有一条笔直而长的路称为“米道”.沿着这条米道上 R 块稻田,每块稻田的坐标均为一个 1 到 L 之间(含 1 和 L)的整数.这些稻田按照坐标以不减的顺序给出,即对于 0 ...

  7. 倍增LCA

    前言 在做树上问题时,我们经常会遇到 \(LCA\)(最近公共祖先)问题.曾经的我遇到这类问题只会\(O(n)\)暴力求解,学了倍增\(LCA\),就可以\(O(logn)\)解决了. 简介 倍增\( ...

  8. springboot框架快速搭建

    1.    新建Maven项目  spring-boot 2.    pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0 ...

  9. Luogu P1471 方差

    题目传送门 开了十倍空间才过是什么鬼?该不会我线段树炸了吧-- 细思极恐 平均数都会求,维护区间和,到时候除一下就好了. 方差的求法如下 (用的Luogu的图片) 因为要维护一个平方,我们可以考虑使用 ...

  10. java基础编程——用两个栈来实现一个队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题目代码 /** * <分析>: * 入队:将元素进栈A * 出队:判断栈B是否为空, * ...