monkeyrunner的使用过程中遇到的问题整理

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:32   1539   0

用macbook配置的环境真的时一波三折,终于配好开始使用后又出现了各种问题,在此记录一下,也希望能帮助更多的同学们

新手一个,探索中,说的不对的勿喷~

一、adb devices命令始终不能发现模拟器,或者报错

List of devices attached
adb server version (32) doesn't match this client (36); killing...
* daemon started successfully *

解决办法:

我一开始使用了夜神模拟器,但是不知道为啥,每次启动夜神模拟器都会导致我的电脑崩溃重启,只好放弃了

然后改成了网易mumu模拟器,终于可以用了,如果有时候发现不了模拟器,重启电脑和模拟器应该就可以了。

二、使用device.installPackage("xxx.apk") 命令安装apk时报错

java.lang.NoSuchMethodError: com.android.ddmlib.IDevice.installRemotePackage (类似这个错误,具体错误我忘记截图下来)

解决办法:

我卸载了原来android studio里下载下来的platform-tools和tools,重新下载了一个别的版本的进行替换,下载地址如下:

http://www.androiddevtools.cn/

然后重新启动monkeyrunner,再输入之前的安装命令,就可以了~

三、使用uiautomatorviewer定位元素时,报错

使用了真机进行定位,获取真机屏幕时报错:

Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

解决办法:重启手机,再次获取就可以了

我用uiautomatorviewer获取模拟器的屏幕是不可以的,所以我只能获取真机屏幕定位元素,写好脚本后在模拟器上跑,心累。。

四、运行脚本时报错:Could not connect to the view server

首先通过执行如下命令判断是否开启View Server:
adb shell service call window 3
若返回值是:Result: Parcel(00000000 00000001 '........') 说明View Server处于开启状态
若返回值是:Result: Parcel(00000000 00000000 '........') 说明View Server处于关闭
若是一台可以打开View Server的手机(Android开发版手机 、模拟器or 按照本帖步骤给系统打补丁的手机),我们可以使用以下命令打开View Server:
adb shell service call window 1 i32 4939
使用以下命令关闭View Server:
adb shell service call window 2 i32 4939

我是用红米2a测试的,亲测可用,然后再跑脚本就没有报这个错误了,但是后续的脚本跑不起来,又回归了模拟器跑



五、运行脚本时一直卡着,无响应

虽然monkeyrunner是可以同时操作多个设备的,但是不熟悉的时候还是只开一个吧,我把多余的窗口关掉,再尝试就可以了,建议只保留当前在进行测试的一个窗口

六、报错 Non-ASCII character in file

只要在文件开头加入下面代码就行了

1 # -*- coding: UTF-8 -*-  

特别注意:上面这条语句一定要加在源代码的第一行!!!!

默认的python文件是采用ascii编码的,在头部加入# -*- coding: utf-8 -*- 则指定文件的编码格式是utf-8,那么就是说文件内你可以用中文或其他的文字了。



转载于:https://www.cnblogs.com/eluneX/p/6831403.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP