实现原理 Hierarchy Viewer:获得当前手机实时的UI信息,方便用于手机的自动化测试; python中的subprocess.Popen():调用系统命令; uiautomator工具:获取界面控件信息; adb命令:对手机进行操作; 测试环境 1、HierarchyViewer将把下一 ...
分类:
移动开发 时间:
2017-02-02 15:33:08
阅读次数:
231
方案分析: 方案一:监听长按事件弹出PopupWindow【可行,缺点布局是固定的,小语种下会出现菜单截断现象】 方案二:弹出ContextMenu【不可行,因为ContextMenu的菜单是上下排列】 方案三:通过hierarchyviewer.bat查看可知,Editor的复制粘贴功能用的是to ...
分类:
其他好文 时间:
2016-09-10 23:48:09
阅读次数:
182
说在前面 1、https://github.com/appium/python-client/tree/master/test 里面有一些test ,可以看看,研究研究 2、学会使用 uiautomatorviewer 和 hierarchyviewer ,这两个工具可以帮助查看app一些信息,非常 ...
分类:
移动开发 时间:
2016-05-06 10:38:45
阅读次数:
2006
在Android SDK下提供了两个工具可以来查看控件的id,在Android SDK目录下的tools字文件夹下可以找到这两个工具,hierarchyviewer.bat和uiautomatorviewer.bat hierarchyviewer.bat用法介绍 Hierarchy Viewer只
分类:
其他好文 时间:
2016-03-06 17:05:55
阅读次数:
143
1. 前言 本来这次文章的title是写成和前几篇类似的《EasyMonkeyDevice API实践全记录》,内容也打算把每一个API的实践和建议给记录下来,但后来想了下认为这样子并非最好的方法,鉴于EasyMonkeyDevice事实上就是在前几章描写叙述的MonkeyDevice和Hierar
分类:
移动开发 时间:
2016-02-27 16:30:00
阅读次数:
357
这里如果你对java熟悉的话其实很简单,就是根据控件属性的名字对properties列表进行一次排序而已。如果你对java不熟悉的话,那就要先去查下Collections.sort这个方法是怎么回事了。顾名思义它提供的是对一个集合List的排序功能,但是根据什么来排序呢?这里就涉及到两个概念了:Co...
分类:
其他好文 时间:
2016-01-07 18:03:11
阅读次数:
163
整个dump返回的文件可以看成一棵由控件组成的多叉树,每一行代表一个控件,每一行(一个控件)开始前的空格数代表该控件在这棵树的层次,如没有空格代表的就是根节点,也就是我们常说的窗口顶端的DecorView.以上方法的算法理解我们首先要弄清楚用到的几个变量的意义:depth: 代表当前在分析的一行控件...
分类:
其他好文 时间:
2016-01-05 18:56:17
阅读次数:
135
代码先是发送”LIST”命令到ViewServer列出所有的打开的窗口,然后把每个窗口都保存起来。342行起按照源码的注释解析就是说:从协议版本3以后开始加入了窗口自动更新的功能,但是在此之前,如果用户想要获得一个获得焦点的窗口的话,需要通过显式的创建一个特殊的哈希值为-1的Window实例来完成。...
分类:
其他好文 时间:
2016-01-05 18:48:36
阅读次数:
136
这里注意指向父控件节点的parent和指向子控件节点的children的定义的差别,children指向的是ViewNode类型的列表。为什么会这样呢?其实很简单:父亲只有一个,儿子可以有多个。有了这些做为铺垫后,我们就可以往回看上面“代码14-8-4 BridgeDevice - parseVie...
分类:
其他好文 时间:
2016-01-05 18:14:12
阅读次数:
138
这里获取的版本号有两个,一个是ViewServer自身的版本号,一个是ViewServer当前使用协议的版本号。 我们这里为什么需要获取ViewServer版本以及其协议版本呢?其实主要原因是ViewServer有些功能在老版本上是不支持的,比如HierarchyViewer在列出当前所有Activity窗口的时候,针对获取焦点的窗口会根据不同的ViewServer协议版本而作不同处理,请看源码示...
分类:
其他好文 时间:
2015-12-08 11:39:48
阅读次数:
247