继续android自动化测试,上周研究了下sendevent模拟鼠标键盘的方法,比较麻烦。
其实我们可以使用简单点的指令也能实现类似的功能:
adb shell input XXX
先来看下input有哪些命令,输入adb shell input,可以看到如下打印:
usage: input ...
input text //输入文字(中文不支持)
input keyevent //keyevent按键
input [touchscreen|touchpad|touchnavigation] tap //点击屏幕
input [touchscreen|touchpad|touchnavigation] swipe [duration(ms)] //屏幕滑动
input trackball press
input trackball roll
input rotationevent 0 1->90 2->180 3->270> //顺时针旋转
非常直观,就是字面上的意思啦!
input text
输入一串字符。
例如先进入短信界面,然后在cmd窗口输入adb shell input text 132abc,然后就可以看到UE屏幕上输入了“123abc”的短信内容;
input keyevent
执行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)出点击一次
例如adb shell input tap 500 500,就是在屏幕(500,500)处点击一次;
input [touchscreen|touchpad|touchnavigation] swipe [duration(ms)]
从(x1,y1)滑动到(x2,y2)
例如adb shell input swipe 500 500 1000 500,就是从屏幕(500,500)滑动到(1000,500);
input trackball press
按下滚球(没用了现在)
input trackball roll
移动滚球(没用了现在)
input rotationevent 0 1->90 2->180 3->270>
将屏幕顺时针旋转到0°、90°、180°、270°
例如adb shell input rotationevent 2 就是把屏幕反过来