通常在做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('返回首页了!')

封装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” |