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('返回首頁了!')

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM