一、通过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. backbone杂记

    国人的一个不错的分享:http://gavin.iteye.com/blog/1446277 backbone项目如何组织文件结构 引用: http://bocoup.com/weblog/organ ...

  2. pip 直接安装tar.gz zip文件包 (windows linux mac 可用)

    在不能连接外网的机器上安装python的各种包,解压安装要人工输入多条命令: tar -zxvf Flask-WTF-0.10.0.tar.gz cd Flask-WTF-0.10.0 python ...

  3. host

    #Google Services START209.116.186.241 0.docs.google.com209.116.186.241 0.drive.google.com209.116.186 ...

  4. Sybase IQ导出文件的几种方式

    IQ有四种方法,将表的数据导出为文本文件:1.重定向 SELECT * FROM TABLE1 ># D:MYDATATABLE1.TXT -- 文件生成在执行语句的客户端上 2.通过选项导出 ...

  5. 转mysql复制主从集群搭建

    最近搭了个主从复制,中间出了点小问题,排查搞定,记录下来 1环境:虚拟机:OS:centos6.5Linux host2 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 ...

  6. Android开发数据库三层应用-DataSnap

    Android开发数据库三层应用-DataSnap http://www.2ccc.com/news/Html/?1517.html 核心提示:我觉得Delphi最强大的的功能之一就是开发数据库三层应 ...

  7. MyBatis的foreach语句详解

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有 item,index,collection,open,separator,close.it ...

  8. Docker跨主机通信之路由

    一.实验环境: 主机名 主机IP Docker0_IP Docker1 192.168.88.130 172.17.0.1 Docker2 192.168.88.131 172.18.0.1 二.实验 ...

  9. 侃侃前端MVC设计模式

    前言 前端的MVC,近几年一直很火,大家也都纷纷讨论着,于是乎,抽空总结一下这个知识点.看了些文章,结合实践略作总结并发表一下自己的看法. 最初接触MVC是后端Java的MVC架构,用一张图来表示之— ...

  10. 【转】如何在 Eclipse 中進行 TFS 的版本管控

    转自:http://www.dotblogs.com.tw/franma/archive/2010/05/04/15009.aspx 和上一篇一樣!所使用的版本也是 3.4 的 之前有被問到 Team ...