appium---操作手机按键(adb shell input keyevent )

  通常在做app测试的时候,我们都会用到一些开机键,返回键,home键等一系列的操作来帮助我们测试,那么在自动化中如何实现这些呢?

keyevent

keyevent表示android中的模拟手机的一些按键。

官网:https://developer.android.com/reference/android/view/KeyEvent

格式:

# 直接输入数字
adb shell input keyevent KEYCODE_HOME

# 输入字符串
adb shell input keyevent 3

小试牛刀

我们通过实例进行演示下,在代码中如何操作。

# coding:utf-8
from appium import webdriver
import time
import os
desired_caps = {
                 'platformName': 'Android',  # 测试版本
                 'deviceName': 'emulator-5554',   # 设备名
                 'platformVersion': '5.1.1', # 系统版本
                "appPackage": "com.taobao.taobao",   # app包名
                "appActivity": "com.taobao.tao.welcome.Welcome",   # 启动launch Activity
                "noReset": True,  # 不清空数据
                "unicodeKeyboard": True,    # 使用Unicode编码方式发送字符串
                "resetKeyboard": True,      # 键盘隐藏起来
                        }
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(10)
# 点击home键
adb = 'adb shell input keyevent 3'
os.popen(adb)
print('返回首页了!')

appium---操作手机按键(adb shell input keyevent )_第1张图片

封装keyevent

我们可以把常用的keyevent都封装起来,然后用的时候可以直接进行调用

import os
class Keyevent(object):
    '''常用的keyevent'''

    KEYCODE_BACK = 4              # 返回键
    KEYCODE_HOME =3               # home
    KEYCODE_POWER = 26            # 电源键
    KEYCODE_FORWARD_DEL = 112     # 删除键
    KEYCODE_DPAD_UP = 19          # 向上

    def adbkeyevent(self,keyevent):
        adb = 'adb shell input keyevent %s'% keyevent
        os.popen(adb)
if __name__ == '__main__':
    adb = Keyevent()
    adb.adbkeyevent(3)

常用的keyevent

通过官网总结了一些keyevent,希望能帮助到大家 

0 KEYCODE_UNKNOWN 未知按键
1 KEYCODE_SOFT_LEFT 按键 Soft Left
2 KEYCODE_SOFT_RIGHT 按键 Soft Right
3 KEYCODE_HOME 按键 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 电源键
27 KEYCODE_CAMERA 拍照键
28 KEYCODE_CLEAR 按键 Clear
29 KEYCODE_A 按键 A
30 KEYCODE_B 按键 B 
31 KEYCODE_C 按键 C 
32 KEYCODE_D 按键 D 
33 KEYCODE_E 按键 E 
34 KEYCODE_F 按键 F 
35 KEYCODE_G 按键 G 
36 KEYCODE_H 按键 H 
37 KEYCODE_I 按键 I 
38 KEYCODE_J 按键 J 
39 KEYCODE_K 按键 K 
40 KEYCODE_L 按键 L 
41 KEYCODE_M 按键 M 
42 KEYCODE_N 按键 N 
43 KEYCODE_O 按键 O 
44 KEYCODE_P 按键 P 
45 KEYCODE_Q 按键 Q 
46 KEYCODE_R 按键 R 
47 KEYCODE_S 按键 S 
48 KEYCODE_T 按键 T 
49 KEYCODE_U 按键 U 
50 KEYCODE_V 按键 V 
51 KEYCODE_W 按键 W 
52 KEYCODE_X 按键 X 
53 KEYCODE_Y 按键 Y 
54 KEYCODE_Z 按键 Z 
55 KEYCODE_COMMA 按键 ','
56 KEYCODE_PERIOD 按键 '.'
57 KEYCODE_ALT_LEFT Alt + Left
58 KEYCODE_ALT_RIGHT Alt + Right
59 KEYCODE_SHIFT_LEFT Shift + Left
60 KEYCODE_SHIFT_RIGHT Shift + Right
61 KEYCODE_TAB Tab 键
62 KEYCODE_SPACE 空格键
63 KEYCODE_SYM 按键 Symbol modifier
64 KEYCODE_EXPLORER 按键 Explorer special function
65 KEYCODE_ENVELOPE 按键 Envelope special function
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 按键 Number modifier
79 KEYCODE_HEADSETHOOK 按键 Headset Hook
80 KEYCODE_FOCUS 拍照 对焦键
81 KEYCODE_PLUS 按键 '+'
82 KEYCODE_MENU 菜单键
83 KEYCODE_NOTIFICATION 通知键
84 KEYCODE_SEARCH 搜索键
85 TAG_LAST_KEYCODE  
86 KEYCODE_MEDIA_STOP 多媒体键 停止 
87 KEYCODE_MEDIA_NEXT 多媒体键 下一首
88 KEYCODE_MEDIA_PREVIOUS 多媒体键 上一首 
89 KEYCODE_MEDIA_REWIND 多媒体键 快退
90 KEYCODE_MEDIA_FAST_FORWARD 多媒体键 快进 
91 KEYCODE_MUTE 话筒静音键
92 KEYCODE_PAGE_UP 向上翻页键
93 KEYCODE_PAGE_DOWN 向下翻页键
94 KEYCODE_PICTSYMBOLS 按键 Picture Symbols modifier
95 KEYCODE_SWITCH_CHARSET 按键 Switch Charset modifier
96  KEYCODE_BUTTON_A 游戏手柄按钮 A
97  KEYCODE_BUTTON_B 游戏手柄按钮 B
98  KEYCODE_BUTTON_C 游戏手柄按钮 C
99  KEYCODE_BUTTON_X 游戏手柄按钮 X
100  KEYCODE_BUTTON_Y 游戏手柄按钮 Y
101  KEYCODE_BUTTON_Z 游戏手柄按钮 Z
102  KEYCODE_BUTTON_L1 游戏手柄按钮 L1
103  KEYCODE_BUTTON_R1 游戏手柄按钮 R1
104  KEYCODE_BUTTON_L2 游戏手柄按钮 L2
105  KEYCODE_BUTTON_R2 游戏手柄按钮 R2
106  KEYCODE_BUTTON_THUMBL Left Thumb Button
107  KEYCODE_BUTTON_THUMBR Right Thumb Button
108  KEYCODE_BUTTON_START 游戏手柄按钮 Start
109  KEYCODE_BUTTON_SELECT 游戏手柄按钮 Select
110  KEYCODE_BUTTON_MODE 游戏手柄按钮 Mode
111  KEYCODE_ESCAPE ESC 键
112  KEYCODE_FORWARD_DEL  删除键 
113 KEYCODE_CTRL_LEFT Control + Left
114  KEYCODE_CTRL_RIGHT Control + Right
115  KEYCODE_CAPS_LOCK 大写锁定键
116  KEYCODE_SCROLL_LOCK  滚动锁定键 
117 KEYCODE_META_LEFT 按键 Left Meta modifier
118  KEYCODE_META_RIGHT 按键 Right Meta modifier
119  KEYCODE_FUNCTION 按键 Function modifier
120  KEYCODE_SYSRQ 按键 System Request / Print Screen
121  KEYCODE_BREAK  Break/Pause键
122 KEYCODE_MOVE_HOME 光标移动到开始键
123 KEYCODE_MOVE_END 光标移动到末尾键
124 KEYCODE_INSERT 插入键
125 KEYCODE_FORWARD 按键 Forward
126  KEYCODE_MEDIA_PLAY 多媒体键 播放 
127  KEYCODE_MEDIA_PAUSE  多媒体键 暂停
128  KEYCODE_MEDIA_CLOSE 多媒体键 关闭
129  KEYCODE_MEDIA_EJECT 多媒体键 弹出 
130  KEYCODE_MEDIA_RECORD 多媒体键 录音
131  KEYCODE_F1 按键 F1
132  KEYCODE_F2 按键 F2
133  KEYCODE_F3 按键 F3
134  KEYCODE_F4 按键 F4
135  KEYCODE_F5 按键 F5
136  KEYCODE_F6 按键 F6
137  KEYCODE_F7 按键 F7
138  KEYCODE_F8 按键 F8
139  KEYCODE_F9 按键 F9
140  KEYCODE_F10 按键 F10
141  KEYCODE_F11 按键 F11
142  KEYCODE_F12 按键 F12
143  KEYCODE_NUM_LOCK 小键盘锁
144  KEYCODE_NUMPAD_0 小键盘按键 '0'
145  KEYCODE_NUMPAD_1 小键盘按键 '1' 
146  KEYCODE_NUMPAD_2 小键盘按键 '2' 
147 KEYCODE_NUMPAD_3 小键盘按键 '3' 
148  KEYCODE_NUMPAD_4 小键盘按键 '4' 
149  KEYCODE_NUMPAD_5  小键盘按键 '5' 
150  KEYCODE_NUMPAD_6  小键盘按键 '6' 
151  KEYCODE_NUMPAD_7  小键盘按键 '7' 
152  KEYCODE_NUMPAD_8  小键盘按键 '8' 
153  KEYCODE_NUMPAD_9  小键盘按键 '9' 
154  KEYCODE_NUMPAD_DIVIDE
小键盘按键 '/' 
155  KEYCODE_NUMPAD_MULTIPLY 小键盘按键 '*' 
156  KEYCODE_NUMPAD_SUBTRACT 小键盘按键 '-'
157  KEYCODE_NUMPAD_ADD 小键盘按键 '+'
158  KEYCODE_NUMPAD_DOT  小键盘按键 '.'
159  KEYCODE_NUMPAD_COMMA 小键盘按键 ',' 
160  KEYCODE_NUMPAD_ENTER 小键盘按键回车
161  KEYCODE_NUMPAD_EQUALS 小键盘按键 '='
162  KEYCODE_NUMPAD_LEFT_PAREN 小键盘按键 '('
163  KEYCODE_NUMPAD_RIGHT_PAREN 小键盘按键 ')'
164  KEYCODE_VOLUME_MUTE 扬声器静音键 
165  KEYCODE_INFO 按键 Info
166 KEYCODE_CHANNEL_UP 按键 Channel up
167  KEYCODE_CHANNEL_DOWN 按键 Channel down
168  KEYCODE_ZOOM_IN 放大键
169  KEYCODE_ZOOM_OUT 缩小键
170  KEYCODE_TV 按键 TV
171 KEYCODE_WINDOW 按键 Window
172 KEYCODE_GUIDE  按键 Guide
173 KEYCODE_DVR 按键 DVR
174 KEYCODE_BOOKMARK 按键 Bookmark
175 KEYCODE_CAPTIONS 按键 Toggle captions
176 KEYCODE_SETTINGS 按键 Settings
177 KEYCODE_TV_POWER 按键 TV power
178 KEYCODE_TV_INPUT 按键 TV input
179 KEYCODE_STB_POWER 按键 Set-top-box power
180 KEYCODE_STB_INPUT 按键 Set-top-box input
181 KEYCODE_AVR_POWER 按键 A/V Receiver power
182 KEYCODE_AVR_INPUT 按键 A/V Receiver input 
183  KEYCODE_PROG_RED  按键 Red “programmable”
184 KEYCODE_PROG_GREEN  按键 Green “programmable”

你可能感兴趣的:(appium---操作手机按键(adb shell input keyevent ))