MonkenRunner通过HierarchyViewer定位控制的方法和建议(Appium/UIAutomator/Robotium侣)

  • 时间:
  • 浏览:6
  • 来源:大发5分6合_大发5分6合官方

这俩 API的目的是想定位另另另一个已知ViewNode控件的左上角在屏幕上的绝对坐标。对于亲戚亲戚一些人正常的APP上面的控件,一些人实践过是没办法 大问题的。已经 有这俩情形要不为甚注意:这俩 对Menu Options以下的控件是无效的!

正在使用MonkeyRunner当亲戚亲戚一些人一个劲 使用Chimchat下面HierarchyViewer模块获得目标控制的一些信息,以协助亲戚亲戚一些人测试。但在MonkeyRunner官方的说法是没办法 看完相应的API叙事描述,上面只另另另一个班API(http://developer.android.com/tools/help/MonkeyDevice.html)

没办法 这俩 数据是怎样获得的呢?事实上依照我的理解(

一些一些在这里尝试架构设计 下HierarchyViewer提供的API的使用法律法律法律依据并法律法律依据实践作出对应的建议,首先请看该类提供的删改可用的公共法律法律法律依据,内容何必 多:

下面另另另一个法律法律法律依据都一定会用来定位控件的,一块儿记录下来以供參考。

在本文里知道它代表了目标控件即可了

这俩 法律法律法律依据的目的是获得目标ViewNode控件的上面点的绝对坐标值,已经

以上演示样例最后一段代码的输出是(3,18),事实上这里不必想都知道这俩 不机会是相对屏幕左上角坐标(0,0)的绝对坐标值了,就偏移这俩 点点像素,你真的当我的实验机器HTC Incredible S是才能植入脑袋的神器啊。

下面是事先不同框架的控件定位的实践。一块儿列出来方便直接跳转參考:

HierarchyViewer监控信息:

而Add note的绝对坐标是(3,701)

》)左上角坐标到目标控件的的偏移坐标”,仅仅是这俩 最上层的DecorView的坐标一般一定会从(0,0)開始而已。累似 以下图我着实最上面的那个FrameLayout就代表了DecorView,机会说整个窗口

输出:

如亲戚亲戚一些人的演示样例已经 明白指出亲戚亲戚一些人才能 的是在父控件“id/icon_menu"(请看背景的hierarchyviewer截图)以下的那个”id/title"控件。

本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/47538400.html,如需转载请自行联系原作者

没办法 在机会我的观点是对的情形下,这俩 就非常好解析了。请看Menu Option的最上层FrameLayout的绝对坐标是(0。683)

事实上已经 获得当前打开的窗体的packageName/activityName,输出与HierarchyViewer工具检測到的信息一致,一些一些猜想其用到相同的法律法律法律依据。

本文亲戚亲戚一些人依旧跟上几篇文章一样以SDK自带的NotePad为实验目标。看为甚定位到NotesList以下的Menu Options中的Add note这俩 Menu Entry。

)。这俩 函数的定义应该是“获得从最上层的DecorView(具体DectorView的描写叙述请查看我已经 转载的一篇文章《

从图中才能看出HierarchyViewer类中提供的法律法律法律依据主已经 用来定位控件相关的。涵盖法律法律依据ID取得控件。法律法律依据控件取得控件在屏幕的位置等。但另一些其它法律法律法律依据,亲戚亲戚一些人会顺带一块儿描写叙述,毕竟内容何必 多。

两者一相减已经 和亲戚亲戚一些人的输出结果绝对吻合的(3,18)了。

下面是通过HierarchyViewer这俩 工具获得的目标设备界面的截图:



已经 查看下控件否有可见,没哪几种好解析的了。

此API的目的已经 通过控件的ID来获得代表用户控件的另另另一个ViewNode对象。机会这俩 是第另另另一个演示样例,一些一些这里有几点才能 说明

版权声明:本文博客原创文章,博客,未经同意,不得转载。

这俩 法律法律法律依据是上面法律法律法律依据的另另另一个重载,除了才能 指定ID之外,还才能 指定另另另一个rootNode,该rootNode指的已经 已知控件的父控件。父到哪几种层级就没办法 限制了。为哪几种才能 这俩 法律法律法律依据了,亲戚亲戚一些人才能想象下已经 的情形:同一界面上地处另另另一个控件拥有同样的ID,已经 亲戚亲戚一些人某另另另一个层级父控件開始地处分叉。没办法 亲戚亲戚一些人就才能把rootNode指定为该父控件(不包括)到目标控件(不包括)路径中的当中另另另一个父控件来精选取位亲戚亲戚一些人才能 的目标控件了。