继续android自动化测试,上周研究了下sendevent模拟鼠标键盘的方法,比较麻烦。
其实我们可以使用简单点的指令也能实现类似的功能:
adb shell input XXX
先来看下input有哪些命令,输入adb shell input,可以看到如下打印:
usage: input ...
input text <string> //输入文字(中文不支持)
input keyevent <key code number or name> //keyevent按键
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>
input rotationevent <rotation_code:0->0 1->90 2->180 3->270> //顺时针旋转
非常直观,就是字面上的意思啦!
input text <string>
输入一串字符。
例如先进入短信界面,然后在cmd窗口输入adb shell input text 132abc,然后就可以看到UE屏幕上输入了“123abc”的短信内容;
input keyevent <key code number or name>
执行key code代表的事件,其中对应的key code如下表所列:
KeyEvent Value |
KEYCODE |
Comment |
0 |
KEYCODE_UNKNOWN |
|
1 |
KEYCODE_MENU |
|
2 |
KEYCODE_SOFT_RIGHT |
|
3 |
KEYCODE_HOME |
|
4 |
KEYCODE_BACK |
|
5 |
KEYCODE_CALL |
|
6 |
KEYCODE_ENDCALL |
|
7 |
KEYCODE_0 |
0 |
8 |
KEYCODE_1 |
1 |
9 |
KEYCODE_2 |
2 |
10 |
KEYCODE_3 |
3 |
11 |
KEYCODE_4 |
4 |
12 |
KEYCODE_5 |
5 |
13 |
KEYCODE_6 |
6 |
14 |
KEYCODE_7 |
7 |
15 |
KEYCODE_8 |
8 |
16 |
KEYCODE_9 |
9 |
17 |
KEYCODE_STAR |
* |
18 |
KEYCODE_POUND |
# |
19 |
KEYCODE_DPAD_UP |
光标上移一位 |
20 |
KEYCODE_DPAD_DOWN |
光标下移一位 |
21 |
KEYCODE_DPAD_LEFT |
光标左移一位 |
22 |
KEYCODE_DPAD_RIGHT |
光标右移一位 |
23 |
KEYCODE_DPAD_CENTER |
点击光标所在位置 |
24 |
KEYCODE_VOLUME_UP |
加声音 |
25 |
KEYCODE_VOLUME_DOWN |
减声音 |
26 |
KEYCODE_POWER |
按下power键 |
27 |
KEYCODE_CAMERA |
打开照相机 |
28 |
KEYCODE_CLEAR |
|
29 |
KEYCODE_A |
|
30 |
KEYCODE_B |
|
31 |
KEYCODE_C |
|
32 |
KEYCODE_D |
|
33 |
KEYCODE_E |
|
34 |
KEYCODE_F |
|
35 |
KEYCODE_G |
|
36 |
KEYCODE_H |
|
37 |
KEYCODE_I |
|
38 |
KEYCODE_J |
|
39 |
KEYCODE_K |
|
40 |
KEYCODE_L |
|
41 |
KEYCODE_M |
|
42 |
KEYCODE_N |
|
43 |
KEYCODE_O |
|
44 |
KEYCODE_P |
|
45 |
KEYCODE_Q |
|
46 |
KEYCODE_R |
|
47 |
KEYCODE_S |
|
48 |
KEYCODE_T |
|
49 |
KEYCODE_U |
|
50 |
KEYCODE_V |
|
51 |
KEYCODE_W |
|
52 |
KEYCODE_X |
|
53 |
KEYCODE_Y |
|
54 |
KEYCODE_Z |
|
55 |
KEYCODE_COMMA |
, |
56 |
KEYCODE_PERIOD |
。 |
57 |
KEYCODE_ALT_LEFT |
|
58 |
KEYCODE_ALT_RIGHT |
|
59 |
KEYCODE_SHIFT_LEFT |
|
60 |
KEYCODE_SHIFT_RIGHT |
|
61 |
KEYCODE_TAB |
|
62 |
KEYCODE_SPACE |
空格 |
63 |
KEYCODE_SYM |
|
64 |
KEYCODE_EXPLORER |
打开浏览器 |
65 |
KEYCODE_ENVELOPE |
打开邮件 |
66 |
KEYCODE_ENTER |
回车/确认 |
67 |
KEYCODE_DEL |
删除 |
68 |
KEYCODE_GRAVE |
` |
69 |
KEYCODE_MINUS |
- |
70 |
KEYCODE_EQUALS |
= |
71 |
KEYCODE_LEFT_BRACKET |
[ |
72 |
KEYCODE_RIGHT_BRACKET |
] |
73 |
KEYCODE_BACKSLASH |
\ |
74 |
KEYCODE_SEMICOLON |
; |
75 |
KEYCODE_APOSTROPHE |
‘ |
76 |
KEYCODE_SLASH |
/ |
77 |
KEYCODE_AT |
@ |
78 |
KEYCODE_NUM |
|
79 |
KEYCODE_HEADSETHOOK |
|
80 |
KEYCODE_FOCUS |
|
81 |
KEYCODE_PLUS |
- |
82 |
KEYCODE_MENU |
菜单 |
83 |
KEYCODE_NOTIFICATION |
|
84 |
KEYCODE_SEARCH |
进入搜索页面 |
85 |
TAG_LAST_KEYCODE |
|
input [touchscreen|touchpad|touchnavigation] tap <x> <y>
在坐标(x,y)出点击一次
例如adb shell input tap 500 500,就是在屏幕(500,500)处点击一次;
input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)]
从(x1,y1)滑动到(x2,y2)
例如adb shell input swipe 500 500 1000 500,就是从屏幕(500,500)滑动到(1000,500);
input trackball press
按下滚球(没用了现在)
input trackball roll <dx> <dy>
移动滚球(没用了现在)
input rotationevent <rotation_code:0->0 1->90 2->180 3->270>
将屏幕顺时针旋转到0°、90°、180°、270°
例如adb shell input rotationevent 2 就是把屏幕反过来