zoukankan      html  css  js  c++  java
  • 老李推荐:第14章3节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer实例化

    老李推荐:第14章3节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer实例化 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。 既然要使用HierarchyViewer来获取控件信息,那么首先我们看下在脚本中,我们是怎么获得HierarchyViewer的,看下面一段脚本代码: 1 device = MonkeyRunner.waitForConnection() 2 device.wake() 3 device.startActivity(component="com.example.android.notepad/com.example.android.notepad.NotesList") 4 viewer = device.getHierarchyViewer() 5 view = viewer.findViewById("id/button") 代码14-3-1 测试脚本获取HierarchyViewer示例 从代码中我们可以看到其调用的是MonkeyDevice的getHierarchyViewer方法,跟踪进去: 67 @MonkeyRunnerExported(doc = "Get the HierarchyViewer object for the device.", 68 returns = "A HierarchyViewer object") 69 public HierarchyViewer getHierarchyViewer(PyObject[] args, String[] kws) { 70 return impl.getHierarchyViewer(); 71 } 代码14-3-2 MonkeyDevice - getHierarchyViewer方法 通过本书之前的分析,我们知道MonkeyDevice的成员变量impl事实上就是AdbChimpDevice的一个实例,所以往下调用的是AdbChimpDevice的getHierarchyViewer方法: 82 public HierarchyViewer getHierarchyViewer() { 83 return new HierarchyViewer(device); 84 } 代码14-3-3 AdbChimpDevice的getHierarchyViewer方法 AdbChimpDevice会直接调用HierarchyViewer的构造函数对HierarchyViewer进行实例化。实例化会传入AdbChimpDevice的成员变量device,那么这个device又是哪个类的实例呢?从前面的分析中我们知道,这其实是ddmlib库里面的Device这个类的实例,它主要的作用是调用AdbHelper来往ADB服务器发送命令。 好,我们继续看下HierarchyViwer的构造函数: 30 /** 31 * Constructs the hierarchy viewer for the specified device. 32 * 33 * @param device The Android device to connect to. 34 */ 35 public HierarchyViewer(IDevice device) { 36 this.mDevice = device; 37 setupViewServer(); 38 } 代码14-3-4 HierarchyViewer构造函数 这里HierarchyViewer把ddmlib库的Device实例保存为自己的成员变量以便往后利用它来往ADB发送命令。然后会调用setupViewServer这个成员函数来把ViewServer准备好,下一小节我们会去分析下这个方法。

  • 相关阅读:
    根据文件名或文件扩展名获取文件的默认图标
    TreeView实现类似Outlook在收件箱后面显示新邮件数
    取每组数据的第一条记录的SQL语句
    Stream 和 byte[] 之间的转换
    使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
    C# 创建临时文件
    Tomcat 服务不能启动的问题
    VS2008 椭圆曲线签名(ECDSA)
    2007年12月23日在博客园的排名进入了前300名
    现代软件工程 作业 3 团队作业
  • 原文地址:https://www.cnblogs.com/poptest/p/5099750.html
Copyright © 2011-2022 走看看