MonkeyScript常用命令及Uiautomatorview问题解决
一、MonkeyScript执行脚本的命令
adb shell monkey -f <scriptfile><event-count>
1.Dispatch Trackball--轨迹球事件
轨迹球事件可帮助我们完成“点击”操作

enventide--事件发生的时间
action--0代表按下,1代表弹起,x和y代表坐标点
2.Dispatch Pointer命令--点击事件

action--0代表按下,1代表弹起,x和y代表坐标点
3.Dispath String命令--输入字符串事件

4.Launch Activity命令--启动应用

package--包名称,activity--要启动的页面名称
5.UserWait命令--等待事件,默认单位是毫秒

6.DispathPress事件--输入查询词,按下键值

实践事例:
启动APP->点击输入框->输入查询词->按下Enter键->点击搜索按钮->等待结果的出现
首先在sdk安装目录tools下找到uiautomatorviewer.bat,启动它。
打开uiautomatorview时,页面报错Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException
解决方法:
(1)首先检查你的jdk版本是不是1.8或1.8以下,因为1.9的jdk不兼容uiautomatorviewer;
(2)进入任务管理器,停止adb.exe-》确保Android设备和PC连接同一个WiFi网络环境,并查看Android设备的IP地址,
然后在CMD界面输入adb connect xxx(IP地址),若connect提示拒绝,则执行adb tcpip 5555 重启adb;
(3)再输入adb devices后,再点击uiautomatorview.bat文件去运行

此时,选中Android设备名称/IP地址,依然提示“Error obtaining UI hierarchy",怎么解决这个问题呢??

(1)截取uix文件
adb shell uiautomator dump /sdcard/screen.uix
adb pull /sdcard/screen.uix
(2)截取截图
adb shell screencap -p /sdcard/sc.png
adb pull /sdcard/sc.png
(3)打开sdk tools目录下的uiautomatorviewer.bat,导入从机器获取的截图和资源文件


如上图输入框控件属性:[150,165][1050,255],意思是右上角坐标(150,165),左下角坐标(1050,255),通过这两个点确定位置。
那么 只要取值在这个范围内即可,那么X在(150,1050)范围取个值,Y在(165,255)范围取个值。
我们将要做的操作是:在搜索工厂输入框,输入”某演示工厂“,点击
另一个问题,如何获取当前页面的ACTIVITY?
要获取当前界面的Activity: adb shell dumpsys activity top | findstr ACTIVITY

根据截图中的属性位置,写出script脚本,保存在D:/mooc.scrpt下

手机上的monkey要执行电脑上的script脚本,先将脚本发送给手机端,执行:切换到D目录下,adb push mooc.scrpt data/local/tmp/

执行adb shell monkey -f /data/local/tmp/mooc.script。注意:activity要调用必须在其属性前加activity_exported=True,否找不能成功调起。
MonkeyScript常用命令及Uiautomatorview问题解决的更多相关文章
- Linux常用命令和常见问题解决<------>第一章
查看文件下面所有的隐藏目录:ls -al ~ ls -al ~ls -a -l ~可以发现三条命令执行结果是一致的,原因:因为ls为命令 后面的参数要以空格来区分,不论几个空格 shell都会视为一体 ...
- Git常用命令及常见问题解决
$ mkdir xxx ----创建xxx目录 $ cd learngit ----切到xxx目录下 $ pwd ----查看当前文件所在目录 $ gi ...
- DG常用运维命令及常见问题解决
DG常见运维命令及常见问题解决方法 l> DG库启动.关闭标准操作Dataguard关闭1).先取消日志应用alter database recover managed standby data ...
- Linux远程连接与常用命令
要学linux ,一定得用命令界面的,怎么也得是shell语言,用就最难最原始的,用的人都是专家,历史最少也得30年,不管有三七二十一上来就敲ls ,先看看当前目录都有什么.一口专业的linux范儿, ...
- 关于ubuntu 16.04 docker常用命令
1.sudo docker ps -a 查看当前docker实例的信息: CONTAINER ID IMAGE COMMAND ...
- docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...
- 修改环境变量后,导致一些常用命令失效,如ll,ls,vi不能用
因为一不小心将linux的环境变量修改错误,导致ll之类的常用命令都不能用,很是苦恼,通过百度查询,原来在敲命令时,敲完整的命令路径,还是可以的: 原文地址:http://www.cnblogs.co ...
- Linux 常用命令(持续补充)
常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...
- LVM基本介绍与常用命令
一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...
随机推荐
- jQuery下拉框联动(JQ遍历&JQ中DOM操作)
1.下载jQuery,并导入:https://blog.csdn.net/weixin_44718300/article/details/88746796 2.代码实现: <!DOCTYPE h ...
- GCPC 2013_A Boggle DFS+字典树 CSU 1457
上周比赛的题目,由于那个B题被神编译器的优化功能给卡了,就没动过这个题,其实就是个字典树嘛.当然,由于要在Boggle矩阵里得到初始序列,我还一度有点虚,不知道是用BFS还是DFS,最后发现DFS要好 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring Bean的配置及常用属性
作为 Spring 核心机制的依赖注入,改变了传统的编程习惯,对组件的实例化不再由应用程序完成,转而交由 Spring 容器完成,在需要时注入应用程序中,从而对组件之间依赖关系进行了解耦.这一切都离不 ...
- 大数据高可用集群环境安装与配置(03)——设置SSH免密登录
Hadoop的NameNode需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现 Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,需要将所有 ...
- Angular表单 (一)表单简介
Angular 表单 angular提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单.二者都从视图中捕获用户输入事件.验证用户输入.创建表单模型.修改数据模型,并提供跟踪这些更改的 ...
- 【每日Scrum】第五天冲刺
一.计划会议内容 仍然在解决数据库问题 二.任务看板 三.scrum讨论照片 四.产品的状态 无 五.任务燃尽图
- shell字符串大小写转换
1.typeset 有两个选项 -l 代表小写 -u 代表大写. 用法: typeset -u name name='asdasdas' echo $name typeset -l ame am ...
- 游戏引擎UE4详解!
UE4 的全名是 Unreal Engine 4,中文译为“虚幻引擎4”.UE4 是一款由 Epic Games 公司开发的开源.商业收费.学习免费的游戏引擎.那你了解UE4吗?如果还不清楚,就一起来 ...
- kafka分区选主机制
Kafka Partition Leader选主机制 https://blog.csdn.net/qq_27384769/article/details/80115392 kafka leader选举 ...
- one_day_one_linuxCmd---sz命令
<坚持每天学习一个 linux 命令,今天我们来学习 sz && rz 命令> 前言:我们一般通过 ssh 客户端来进行远程登录和管理的,windows主机使用 ssh 登 ...