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,否找不能成功调起。

 

 

 

    

 

 

 

    

 

 

   

 

posted @ 2020-02-25 14:43  Balllyh  阅读(350)  评论(0编辑  收藏  举报