robotium获取android页面元素的逻辑

先来看看android中页面元素的继承关系

View

android.view.View

这个类表示用户界面组件的基本构建块。一个View占据屏幕上的一个矩形区域,并负责绘图和事件处理。
View是widgets的基类,widgets用于创建交互式UI组件(按钮,文本框等)。
ViewGroup子类是layouts的基类,layouts是不可见的容器包含其他Views(或其他的ViewGroup),并定义它们的布局属性。

 

WebView

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AbsoluteLayout
         ↳ android.webkit.WebView

显示网页的View。这个类是你在你的Activity中,运行自己的网页浏览器或简单地显示一些网上的内容的基础。它使用了WebKit渲染引擎来显示网页,方法包括:历史的前进和后退导航,放大和缩小,执行文本搜索和更多。

请注意,为了使你的Activity能访问Internet,在WebView中加载网页,你必须添加Internet权限到你的Android Manifest文件:

<uses-permissionandroid:name="android.permission.INTERNET"/>

必须是element.的子节点

 

java.lang.Object
   ↳ android.view.View
     ↳

android.widget.TextView

 

 

再通过走读robotium的源码,我们可以知道robotium获取android元素的顺序:

Robotium做自动化测试主要是使用class Solo中的方法,获取元素的顺序,根据类的继承关系依次为:View ->具体元素,如TextView、ImageButton等

 

获取具体页面元素,通过Getter类中的getter.getView方法组,根据传递参数不同,调用的方法不一样,如果你传int id,那就通过activity.findViewById(id);方法

如果是String id,使用targetContext.getResources().getIdentifier(id, "id", "android")方法获得viewId,再通过getView(viewId, index)

public ImageButton getImageButton(int index)
 {
  return (ImageButton)getter.getView(android/widget/ImageButton, index);
 }

 

 

posted on 2013-11-15 12:25  zhitang2009  阅读(1631)  评论(0编辑  收藏  举报

导航