uiautomatorviewer是android SDK自带的工具。通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。该工具位于SDK目录下的tools\bin子目录下。可以看到,它是通过bat文件启动的。

启动界面如下

整个界面分四个区域: 
(1)工作栏区(上) 
共有4个按钮。从左至右分别用于:打开已保存的布局,获取详细布局,获取简洁布局,保存布局。点击保存,将存储两个文件,一个是图片文件,一个是.uix文件(XML布局结构) 
第二按钮(Device Screenshoot uiautomator dump)与第三按钮(Device Screenshoot with Compressed Hierarchy uiautomator dump –compressed)的区别在于,第二按钮把全部布局呈现出来,而第三按钮只呈现有用的控件布局。比如某一 Frame存在,但只有装饰功能,那么点击第三按钮时,可能不被呈现。

(2)截图区(左),显示当前屏幕显示的布局图片 
(3)布局区(右上),已XML树的形式,显示控件布局 
(4)控件属性区(右下),当点击某一控件时,将显示控件属性

第一次点击Device Screenshoot按钮时,将会报错,显示如下

原因是在于,uiautomatorviewer.bat中,需要知道SDK下的子目录platform-tools的路径,即bat文件中的“%prog_dir%”,因此我们需要修改uiautomatorviewer.bat中最后一行代码,将“%prog_dir%”替换为platform-tools的实际目录。

修改前

call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*
  • 1

修改后

call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=C:\Users\XXXXX\AppData\Local\Android\sdk\platform-tools" -jar %jarpath% %*
  • 1

注:其中“XXXXX”为用户名

通过使用UI Automator Viewer,我们可以在没有代码的情况下,查看控件布局,并获取UI的ID,用于之后的脚本编写。

注:Android Studio中可以通过Android Device Monitor 调用UI Automator Viewer。

UI Automator Viewer的使用的更多相关文章

  1. UI Automator Viewer获取手机镜像时报错

    使用UI Automator Viewer获取手机镜像时报错,具体信息如下: Error while obtaining UI hierarchy XML file: com.android.ddml ...

  2. Python3+Appium学习笔记07-元素定位工具UI Automator Viewer

    这篇主要说下如何使用UI Automator Viewer这个工具来定位元素.这个工具是sdk自带的.在sdk安装目录Tools目录下找到uiautomatorviewer.bat并启动它 ​ 如果启 ...

  3. 了解UI Automator Viewer

    uiautomatorviewer 是Android SDK自带的工具,通过截屏分析XML布局文件的方式,为用户提供控件信息查看服务.该工具位于SDK目录下的tools\bin子目录下,可以看到它是通 ...

  4. appium===使用weditor代替ui automator viewer

    weditor 一个元素定位工具,并可实现通过wifi连接移动端进行定位. https://github.com/openatx/uiautomator2 python安装方式: pip instal ...

  5. appium-UI automator viewer 无[ resource-id ]项

    问题:UI automator viewer 无[ resource-id ]项,如下图 解决办法: 手机android  版本太低导致(本人4.2.2),在android4.3机子上运行正常

  6. 自动化测试 | UI Automator 入门指南

    自动化测试的定义,这里先引用一段维基百科的定义: 在软件测试中,测试自动化(英语:Test automation)是一种测试方法,使用特定的软件,去控制测试流程,并比较实际的结果与预期结果之间的差异. ...

  7. 自动化测试 | UI Automator 进阶指南

    UI Automator 相关介绍: 跨应用的用户界面自动化测试 包含在 AndroidX Test(https://developer.android.com/training/testing) 中 ...

  8. UI Automator 介绍

    简介 Android 4.3发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的.也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期.比如 ...

  9. Appium自动化(10) - appium高级元素定位方式之 UI Automator API 的详解

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 前面介绍过根据id,clas ...

随机推荐

  1. Unsupported compiler 'com.apple.compilers.llvmgcc42' selected for architecture 'armv7' Xcode5

    刚刚将Xcode更新到Xcode5,一运行报如下错误: Unsupported compiler 'com.apple.compilers.llvmgcc42' selected for archit ...

  2. (转) iphone开发资源汇总

    如何用Facebook graphic api上传视频: http://developers.facebook.com/blog/post/532/ Keychain保存数据封装: https://g ...

  3. 自动补齐flexselect+级联下拉框案例

    在开发web应用时,经常遇到类似省市区级联下拉框操作,即选中省份自动级联加载该省份所有的市,选中市自动级联加载该市所有的区:假设省市区的数据量很大,此时用户想选中某市,因而要从上往下查找,可能半天都找 ...

  4. python 文件的读取&更新

    [python 文件的读取&更新] 任务抽象: 读取一个文件, 更新内容后, 重新写入文件. 实际应用: 磁盘上的一个配置文件, 读入内存后为一个dict, 对dict更新后重新写入磁盘. d ...

  5. 147. Insertion Sort List (List)

    Sort a linked list using insertion sort. class Solution { public: ListNode *insertionSortList(ListNo ...

  6. c++ 迭代器模式(iterator)

    提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示.当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍 历的时候,就应该考虑用迭代器模式.同时需要对聚集有多种方式遍历时,可以 ...

  7. 746. Min Cost Climbing Stairs 最不费力的加权爬楼梯

    [抄题]: On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once yo ...

  8. Verifying Package Integrity Using MD5 Checksums or GnuPG

    In this note, I reference the MySQL manual file. After downloading the MySQL package that suits your ...

  9. 实践作业4:Web测试实践(小组作业)每日任务记录3

    会议时间:2017年12月23日 会议地点:东九教学楼自习区 主  持  人:王晨懿 参会人员:王晨懿.余晨晨.郑锦波.杨潇.侯欢.汪元 记  录  人:王晨懿 会议议题:小组作业第二阶段 下面是今天 ...

  10. [GO]并发实现聊天室服务器

    package main import ( "net" "fmt" "strings" "time") type Cli ...