通常在做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” |