appium+python adb shell模拟按键操作(input keyevent)

前言

接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作

keyevent

1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两个方法都能实现back键。打开cmd输入指令

# 方法一:
> adb shell input keyevent KEYCODE_BACK

# 方法二:
> adb shell input keyevent 4

2.常用的keyevent事件

  • 解锁(KEYCODE_NOTIFICATION): adb shell input keyevent 83

  • 向上(KEYCODE_DPAD_UP):adb shell input keyevent 19

  • 向下(KEYCODE_DPAD_DOWN):adb shell input keyevent 20

  • 向左(KEYCODE_DPAD_LEFT):adb shell input keyevent 21

  • 向右(KEYCODE_DPAD_RIGHT):adb shell input keyevent 22

keyevent事件对应数字

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”
8 –> “KEYCODE_1”
9 –> “KEYCODE_2”
10 –> “KEYCODE_3”
11 –> “KEYCODE_4”
12 –> “KEYCODE_5”
13 –> “KEYCODE_6”
14 –> “KEYCODE_7”
15 –> “KEYCODE_8”
16 –> “KEYCODE_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”
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”

下面封装keyevent事件放入common模块供调用

 

#coding:utf-8
import os

class Event():
    '''常用keyevent事件'''
    KEYCODE_HOME = 3         # home键
    KEYCODE_MENU = 82        # menu键
    KEYCODE_BACK = 4         # back键
    KEYCODE_POWER = 26       # power键
    KEYCODE_DPAD_UP = 19     # 向上
    KEYCODE_DPAD_DOWN = 20   # 向下
    KEYCODE_DPAD_LEFT = 21   # 向左
    KEYCODE_DPAD_RIGHT = 22  # 向右
    KEYCODE_NOTIFICATION = 83 # 解锁

# 点击返回键
def back(keyname=Event.KEYCODE_BACK):
    ' 执行adb keyevent事件 参数从Event类里面关联'
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# 点击home键
def home(keyname = Event.KEYCODE_HOME):
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# 点击菜单键
def menu(keyname= Event.KEYCODE_MENU):
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# 按一下电源键
def power(keyname=Event.KEYCODE_POWER):
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# 向上滑动
def up(keyname = Event.KEYCODE_DPAD_UP):
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# 向下滑动
def down(keyname = Event.KEYCODE_DPAD_DOWN):
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# 向左滑动
def left(keyname= Event.KEYCODE_DPAD_LEFT):
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# 向右滑动
def right(keyname= Event.KEYCODE_DPAD_RIGHT):
    adb = 'adb shell input keyevent %s' % keyname
    os.system(adb)

# adb也可以输入文本
def input_text(text):
    u'adb输入是text文本,不支持中文'
    adb = 'adb shell input text %s' % text
    os.system(adb)

if __name__=='__main__':
    back()
    back()

有问题可以加我qq 970185127 一起讨论

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不过如此1951

如果有收获,可以打赏一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值