我正在尝试使用adb shell
命令将触摸事件发送到设备,以便我可以为UI测试执行一些基本的自动化.我已经在之前的一些主题中讨论了这个问题.
我确认了获取事件和使用sendevent
,每次触摸发送6个事件(xcoord,ycoord,2
新闻,2
发布)并且很容易使用这些信息sendevent
,但getevent
触摸屏设备的命令似乎也产生了很多很多事件.
有人设法将触摸事件发送adb
到设备吗?你能分享一下解决方案吗?
我正在努力在手机上录制触摸事件.之后,我希望将相同的事件作为UI测试的一部分发送回设备.
请帮忙
Ped*_*ito 48
Android附带了一个input
可以模拟杂项输入事件的命令行工具.
要模拟a tap
,请使用:
input tap x y
Run Code Online (Sandbox Code Playgroud)
运行input
命令远程使用adb shell
:
adb shell input tap x y
Run Code Online (Sandbox Code Playgroud)
其他选择是:
shell@m0:/ $ input
input
usage: input ...
input text <string>
input keyevent <key code number or name>
input [touchscreen|touchpad|touchnavigation] tap <x> <y>
input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)]
input trackball press
input trackball roll <dx> <dy>
Run Code Online (Sandbox Code Playgroud)
use*_*154 30
要发送触摸事件,您需要执行以下操作:
1设置坐标:
adb shell sendevent /dev/input/event2 3 0 x
adb shell sendevent /dev/input/event2 3 1 y
Run Code Online (Sandbox Code Playgroud)
2发送触摸事件(必须有0 0 0对):
adb shell sendevent /dev/input/event2 1 330 1
adb shell sendevent /dev/input/event2 0 0 0
Run Code Online (Sandbox Code Playgroud)
3发送释放手指事件(必须有0 0 0对):
adb shell sendevent /dev/input/event2 1 330 0
adb shell sendevent /dev/input/event2 0 0 0
Run Code Online (Sandbox Code Playgroud)
请注意:
1您可以录制事件:
adb shell getevent
Run Code Online (Sandbox Code Playgroud)
2如果使用getevent,则所有事件值均为十六进制.
最好的问候,Yahor
Max*_*nni 20
我设法记录了一个会话并用bash和adb重播它.
这就是我所做的,我希望它可以帮助某人.
设置pc以在文件中记录数据(/tmp/android-touch-events.log
)
$ adb shell getevent | grep --line-buffered ^/ | tee /tmp/android-touch-events.log
Run Code Online (Sandbox Code Playgroud)ctrl-c
此命令将执行十六进制转换 awk
$ awk '{printf "%s %d %d %d\n", substr($1, 1, length($1) -1), strtonum("0x"$2), strtonum("0x"$3), strtonum("0x"$4)}' /tmp/android-touch-events.log | xargs -l adb shell sendevent
Run Code Online (Sandbox Code Playgroud)
你可能想要像这样使用monkeyrunner:
$ monkeyrunner
>>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
>>> device = MonkeyRunner.waitForConnection()
>>> device.touch(200, 400, MonkeyDevice.DOWN_AND_UP)
Run Code Online (Sandbox Code Playgroud)
你也可以做一个拖动,启动活动等.看看MonkeyDevice的api .
归档时间: |
|
查看次数: |
67513 次 |
最近记录: |