• 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);
     }

  • 相关阅读:
    TCP详解——传输控制协议(总述)
    sublime text3使用插件SublimeTextTrans设置透明度
    vue学习1
    js事件绑定/监听
    如何成为顶级程序猿
    HTML5中meta属性
    windows安装SVN服务器并设置开机启动
    oracle安装登录sqlplus / as sysdba然后报错ERROR: ORA-01031 insufficient privileges
    移动端和PC端有什么区别
    div+css通用兼容性代码整理
  • 原文地址:https://www.cnblogs.com/zhitang2009/p/3425106.html
Copyright © 2020-2023  润新知