一、通过ID查找控件

  Activity act=solo.getCurrentActivity();

  int id=act.getResources().getIdentifier("id名称","id", act.getPackageName());//id名称通过界面查看器hierarchyviewer.bat查看

  View view=solo.getView(id);

二、相同ID控件区分

1)通过其他子控件先获取到父控件再获取子控件。

如:RelativieLayout下有两个子控件(TextView和ImageView)可以根据TextView文档内容获取到RelativeLayout控件

RelativeLayout parernt=(RelativeLayout)solo.getText("").getParent();

2)再根据子控件在父控件中的位置确定子控件。
          ImeViagew search=(ImageView)parernt.getChildAt(0);

  如果是子控件ID与其他父控件中的子控件ID相同,而父控件中的ID不同则可以使用

  ImeViagew search=(ImageView)parernt.findViewById(id);来获取控件。

三、ListView控件下拉刷新

  //先得到ListView控件
ListView listview=solo.getView(id); //存储坐标的数组
int location[]=new int[2]; //获取listiew的坐标
listview.getLocationScreen(location); //坐标是从左上角开始的如果listview铺满整个界面那么坐标可能接近(0,0)
  solo.drag(location[0]+10,location[0]+10,location[1],location[1]+listview.getHeight(),3)

四、WebView测试(Robotium很好的支持了webview)

1)首先要看到webview中网页的源码(网址可以通过webview.getWeburl()来获得)

    2)获取webview中网页的标题(webview.getTitle()来获取)

    注:webview中的所有方法都需要UI线程中操作,不然会抛出异常。

 solo.getCurrentActivity().runOnUiThread(new Runnable() {

        @Override
public void run() {
webViewTitle = webView.getTitle();
Log.i(Constants.LOG_TAG ,"获取对应webview的Title:" + webViewTitle);
}
});

Solo中关于webview的方法有

clearText InWebElement(By by)

clickOnWebElement(By by)

enterTextInWebElement(By by,String text)

waitForWebElement(By by)

从这些方法中可以看出来网页中可以通过By类来标识

而By方法有:

    By.className() //了解css的应该知道类选择器

    By.cssSelector() //这个直接就是根据css选择器来的

By.id()//控件的id

By.name()//控件的名称

By.tagName()// 标签的名称如<p>.

By.TextContent()//控件中的吻别

By.xpath()

例如:solo.clickOnWebElement(By.className("link-ele"),0);//这个是根据类名来的后面的0是位置源码中用到这个类名的控件太多。

Robotium查找指定控件的更多相关文章

  1. 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...

  2. Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)

    本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...

  3. Robotium之Android控件定位实践和建议

    本人之前曾经撰文描述Appium和UIAutomator框架是如何定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议Appium基于安卓的各种FindEl ...

  4. appium通过index查找目标控件

    2.1 通过判断控件属性获取控件 控件的所有属性都可以用作判断,比如它的text,index,resource-id是否clickable等,例如: 2.1.1 通过文本查找目标控件 1 2 el = ...

  5. WinForm 批量设置指定控件中的控件状态

    在开发中常遇到当点击某个按钮的时候,禁用文本框或按钮的的状态,以防止误操作,下面的代码是我已批量设置指定控件中的按钮状态的代码,同理可以延伸出很多操作. /// <summary> /// ...

  6. 【转】WPF查找子控件和父控件方法

    一.查找某种类型的子控件,并返回一个List集合 public List<T> GetChildObjects<T>(DependencyObject obj, Type ty ...

  7. WPF查找子控件和父控件方法

    一.查找某种类型的子控件,并返回一个List集合 public List<T> GetChildObjects<T>(DependencyObject obj, Type ty ...

  8. GridView绑定数据与隐藏指定控件(模板列)

    1.1.    GridView绑定数据 1)       可以配置SqlDataSource数据源,修改select语句生成框架(不想手动绑定) 2)       删除DataSourceID属性和 ...

  9. 初步探讨WPF的ListView控件(涉及模板、查找子控件)

    本文结合模板的应用初步介绍ListView的应用 一.Xaml中如何建立数据资源 大部分数据都会来自于后台代码,如何Xaml同样的建立数据源呢?比如建立一个学生List: 首先引入命名空间: xmln ...

随机推荐

  1. sqlmap参数大全

    -u #注入点-f #指纹判别数据库类型-b #获取数据库版本信息-p #指定可测试的参数(?page=1&id=2 -p “page,id”)-D “”#指定数据库名-T “”#指定表名-C ...

  2. HDU 1713 最小公倍数与最大公约数的问题 相遇周期

    欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) 相遇周期 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/ ...

  3. 从Trie谈到AC自动机

    ZJOI的SAM让我深受打击,WJZ大神怒D陈老师之T3是SAM裸题orz...我还怎么混?暂且写篇`从Trie谈到AC自动机`骗骗经验. Trie Trie是一种好玩的数据结构.它的每个结点存的是字 ...

  4. Java--多线程读取网络图片并保存在本地

    本例用到了多线程.时间函数.网络流.文件读写.正则表达式(在读取html内容response时,最好不要用正则表达式来抓捕html文本内容里的特征,因为服务器返回的多个页面的文本内容不一定使用相同的模 ...

  5. Linux的watch命令 — 实时监测命令的运行结果

    Linux的watch命令 — 实时监测命令的运行结果 watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得 ...

  6. 【Hibernate】Hibernate系列2之Session详解

    Session详解 2.1.概述-一级缓存 2.2.操作session缓存方法 2.3.数据库隔离级别 2.4.持久化状态 2.5.状态转换 2.6.存储过程与触发器

  7. C#静态static的用法

    一.静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来 ...

  8. Plus One Linked List

    Given a non-negative number represented as a singly linked list of digits, plus one to the number. T ...

  9. Product of Array Exclude Itself

    Given an integers array A. Define B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], calculate B WI ...

  10. java关闭流,解压缩后的清除

    关闭流文件和file文件的时候,先打开的后关闭,后打开的先关闭,实在不行调用system.jc()方法