首页 > 编程知识 正文

monkeyscript脚本,monkeyscript可以加函数控制吗

时间:2023-05-06 02:58:12 阅读:228176 作者:328

monkey为向系统发送伪随机事件流,不能控制操作,monkeyscript为monkey脚本编写,完成一系列固定的操作。基于坐标点进行操作,包括点击,输入,长按,滑动等操作。
(1)启动 当前测试的时候利用EditPlus编写脚本,或者记事本编写也可以,MS(monkeyscript)脚本文件格式没有限制,可用txt,或者其他格式,当前用的是没有后缀。
启动时通过monkey命令启动: adb shell monkey -v -v -v -f /mnt/sdcard/makeFriend 5 其中:-f后面为脚本所在的文件路径以及脚本名,10为脚本执行的次数为5次(注意一定要写上执行次数,不然脚本不会成功),脚本路径/mnt/sdcard/makeFriend为通过adb命令导入路径中的
(2)脚本编写: # Start Script type=user count=10 speed=1.0 start data >> #启动应用程序,两个参数分别为包名和Activity名 LaunchActivity(com.cwtcn.kt.friend,com.cwtcn.kt.friend.MainMenuActivity) #等待事件,等待2秒钟 UserWait(2000) #点击事件,点击远程交友按钮 captureDispatchPointer(10,10,0,121,85,1,1,-1,1,1,0,0) captureDispatchPointer(10,10,1,121,85,1,1,-1,1,1,0,0) #等待事件,等待3秒钟 UserWait(3000) #点击事件,点击输入手机号或者imei号的输入框 captureDispatchPointer(10,10,0,96,85,1,1,-1,1,1,0,0) captureDispatchPointer(10,10,1,64,85,1,1,-1,1,1,0,0) #输入字符串事件,输入手机号15889768225 captureDispatchString(15889768225) #点击enter回车 captureDispatchPress(66) #等待事件,等待2秒钟 UserWait(2000) #点击事件,点击搜索按钮 captureDispatchPointer(10,10,0,118,174,1,1,-1,1,1,0,0) captureDispatchPointer(10,10,1,118,174,1,1,-1,1,1,0,0) 上面脚本为交友脚本,通过点击远程交友,输入手机号,点击搜索按钮
(3)脚本相关api 上述脚本第一行到第五行,都为固定脚本,照抄就好 LaunchActivity(String pack_name,String cl_name)为启动应用程序,参数分别为包名和当前界面的Activity名。 获取当前界面包名和Activity名的方法:adb shell "dumpsys window | grep mCurrentFocus"
captureDispatchPointer(10,10,0,121,85,1,1,-1,1,1,0,0) captureDispatchPointer(10,10,1,121,85,1,1,-1,1,1,0,0) 该脚本为点击事件,代表按下和弹起事件,一般配套使用,其中第三列参数的0代表为按下,1位弹起,121,85为点击的坐标位置,坐标位置用uiautomator viewer工具查看,其他参数默认
(4)常用Api介绍: 1、点击事件: DispatchPointer ( downTime , eventTime ,  action , x , y  , pressure , size , metaState , xPrecision , yPrecision , device , edgeFlags) 用于向一个指定的坐标位置,发送单个手势消息,一般用它来模拟点击的操作。action :事件是按下还是抬起,0 表示按下,1 表示抬起。x、y:表示当前事件触发的X轴和Y轴的坐标。 也就是说,两个 DispatchPointer 命令加在一起,分别表示 按下 和 抬起 ,这表示一次点击操作
2、 按键消息(DispatchKey) DispatchKey 主要是用于发送一些 Android 标准的 EventKey 按键消息。但是需要写对应的值。
3、启动应用 LaunchActivity(String pack_name,String cl_name)为启动应用程序,参数分别为包名和当前界面的Activity名。
4、模拟按键点击Tap(x,y,tapDuration) 模拟一次手指单击事件,x,y分别为坐标值,tapDuration为按下的时长
5、打开或关闭软键盘DispatchFlip(true/false)
6、长按两秒:LongPress()
7、唤醒屏幕:DeviceWakeUp()
8、模拟拖动事件:Drag(xStart,yStart,xEnd,yEnd)
9、输入字符串:DispatchString(input)
参考下面两篇博客 https://www.cnblogs.com/YatHo/p/7205162.html
https://www.jianshu.com/p/85454be8424f




版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。