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 阅读(1633) 评论(0) 编辑 收藏 举报