Android自动化测试初探(五): 再述模拟键盘鼠标事件(adb shell 实现)

1. 发送键盘事件:

  命令格式1:adb shell input keyevent “value”

  其中value以及对应的key code如下表所列:

命令格式2:adb shell sendevent [device] [type] [code] [value]

  如: adb shell sendevent /dev/input/event0 1 229 1 代表按下按下menu键

  adb shell sendevent /dev/input/event0 1 229 0 代表按下松开menu键

  说明:上述的命令需组合使用

  另外所知道的命令如下:

  Key Name                        CODE

  MENU                                 229

  HOME                                 102

  BACK (back button)            158

  CALL (call button)               231

  END (end call button)         107


KeyEvent Value

KEYCODE

Comment

0

KEYCODE_UNKNOWN

 

1

KEYCODE_MENU

在SDK2.1的模拟器中命令失效,sendevent命令可行

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


  2. 发送鼠标事件(Touch):

  命令格式:adb shell sendevent [device] [type] [code] [value]

  情况1:在某坐标点上touch

  如在屏幕的x坐标为40,y坐标为210的点上touch一下,命令如下

  adb shell sendevent /dev/input/event0 3 0 40
  adb shell sendevent /dev/input/event0 3 1 210
  
  adb shell sendevent /dev/input/event0 1 330 1 //touch
  adb shell sendevent /dev/input/event0 0 0 0       //it must have
  
  adb shell sendevent /dev/input/event0 1 330 0 //untouch
  adb shell sendevent /dev/input/event0 0 0 0 //it must have

  注:以上六组命令必须配合使用,缺一不可

  情况2:模拟滑动轨迹(可下载并采用aPaint软件进行试验)

  如下例是在aPaint软件上画出一条开始于(100,200),止于(108,200)的水平直线

  adb shell sendevent /dev/input/event0 3 0 100 //start from point (100,200)
  adb shell sendevent /dev/input/event0 3 1 200
  
  adb shell sendevent /dev/input/event0 1 330 1 //touch
  adb shell sendevent /dev/input/event0 0 0 0
  
  adb shell sendevent /dev/input/event0 3 0 101 //step to point (101,200)
  adb shell sendevent /dev/input/event0 0 0 0
  ……………………                                                  //must list each step, here just skip
  adb shell sendevent /dev/input/event0 3 0 108 //end point(108,200)
  adb shell sendevent /dev/input/event0 0 0 0
  
  adb shell sendevent /dev/input/event0 1 330 0 //untouch
  adb shell sendevent /dev/input/event0 0 0 0


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值