MonkeyRunner遇到的问题及解决办法

平时喜欢做笔记的我,今天趁有空得好好整理整理^-^ ^-^
一、在cmd中执行adb shell monkey -p fantongyo.apk -v 1000 报错
   注:以上命令表示让设备执行fantongyo.apk 1000次
   提示:No activities found to run, monkey aborted.
   解决办法:
    1.查看已连接的设备,执行adb devices,显示了设备名称
    2.执行命令adb install d:\fantongyo.apk看是否可以正常安装
    3.执行命令adb uninstall com.android.fantongyo看是否可以正常卸载apk(com.android.fantongyo指apk的包名)
    4.以上都正常,发现我已打开了eclipse编辑器,关闭编辑器后,再在cmd中执行adb shell monkey -p fantongyo.apk -v 1000成功
二、在cmd中执行monkeyrunner d:\input.py脚本时报错
    提示:SyntaxError:Non-ASCII character in file ‘d:\input.py’,but no encoding declared;
    解决办法:在脚本的第一行添加中文的注释语句代码:# -*- coding: UTF-8 -*-
三、引用第三方插件ViewClient时,脚本报错
提示:viewclient.py中的adb is not executable的相关错误
解决办法:
1,经viewclient.py查看有环境变量ANDROID_HOME,而机器本身没有添加ANDROID_HOME环境变量
2,添加环境变量ANDROID_HOME,值为sdk的目录

四、MonkeyRunner连接多个设备方法:
devices1 = MonkeyRunner.waitForConnection(3,’01bf213ad50d8cd9′)
devices2 = MonkeyRunner.waitForConnection(3,’041c9f40f0ddaf68′)
参数1:指连接等待时间,单位为秒
参数2:指设备名称
五、MonkeyRunner采用脚本控制点击事件的方法:
1,通过指定坐标的方式(此方法是笨方法,对不同设备不同分辨率下不可行)
touch (integer x, integer y, integer type)将由type指定的触摸事件发送到由x和y指定的屏幕位置
具体详细测试脚本可参照:MonkeyRunner入门(一)
2,通过apk默认的光标定位采用上下左右导航键控制方式(此方法也是笨方法,对apk没有设置默认光标定位时不可行)
上:device.press(“KEYCODE_DPAD_UP”,”DOWN_AND_UP”)
下:device.press(“KEYCODE_DPAD_DOWN”,”DOWN_AND_UP”)
左:device.press(“KEYCODE_DPAD_LEFT”,”DOWN_AND_UP”)
右:device.press(“KEYCODE_DPAD_RIGHT”,”DOWN_AND_UP”)
3,通过获取控键的文本方式(此方法对同一apk下控键显示的文本相同时不可许,采用第三方插件ViewClient)
4,通过控键id方式(此方法对同一apk下控键id重复不可许,控键id可参考sdk下的HierarchyViewer工具)
viewEdit1 = hierarchyviewer.findViewById(“id/EditText01″)
具体详细测试脚本可参照:MonkeyRunner入门(二)
5,通过控键id索引方式(此方法可行,采用第三方插件wrapEasyMonkey,按键id索引可参考sdk下的HierarchyViewer工具,适用于不同设备不同分辨率)
具体详细测试脚本可参照:MonkeyRunner入门(三)

未完待续!!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

表情
  • 默认
  • 梦幻西游
  • 私人订制