歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 在Linux中使用Python模擬鍵盤按鍵

在Linux中使用Python模擬鍵盤按鍵

日期:2017/3/1 9:51:42   编辑:Linux編程

之前在做自動化測試中需要用Python在linux中模擬Ctrl+V 進行路徑粘貼,試了很多種方法,起初用了xerox和pyperclip這兩個python庫,但打開對話框後調用粘貼API無法進行粘貼,不知道為什麼。

然後發現了virtkey這個庫,這個庫可以在linux 中模擬鍵盤按鍵,但網上資料甚少。這個庫主要有兩個API

1、press_keysym/release_keysym

2、press_unicode/release_unicode

第一個接受keysym作為參數,第二個接受鍵盤的unicode,鍵盤unicode用來模擬字母鍵還是很方便的,但要模擬Ctrl這樣的鍵一直沒找到方法,最終找到了一個關於keysym的表,解決了問題,表如下

.keysym

.keycode

.keysym_num

Key

Alt_L

64

65513

左手邊的Alt鍵

Alt_R

113

65514

右手邊的Alt鍵

BackSpace

22

65288

BackSpace

Cancel

110

65387

Pause Break

Caps_Lock

66

65549

CapsLock

Control_L

37

65507

左手邊的Control鍵

Control_R

109

65508

右手邊的Control鍵

Delete

107

65535

Delete

Down

104

65364

方向鍵:下

End

103

65367

End

Escape

9

65307

Esc

Execute

111

65378

系統調用

F1

67

65470

F1

F2

68

65471

F2

Fi

66+i

65469+i

Fi

F12

96

68481

F12

Home

97

65360

Home

Insert

106

65379

Insert

Left

100

65361

方向鍵:左

Linefeed

54

106

Linefeed(Ctrl-j)

KP_0

90

65438

數字鍵:0

KP_1

87

65436

數字鍵:1

KP_2

88

65433

數字鍵:2

KP_3

89

65435

數字鍵:3

KP_4

83

65430

數字鍵:4

KP_5

84

65437

數字鍵:5

KP_6

85

65432

數字鍵:6

KP_7

79

65429

數字鍵:7

KP_8

80

65431

數字鍵:8

KP_9

81

65434

數字鍵:9

KP_Add

86

65451

運算鍵:+

KP_Begin

84

65437

小鍵盤:5號鍵

KP_Decimal

91

65439

“.”鍵

KP_Delete

91

65439

Delete

KP_Divide

112

65455

“/”鍵

KP_Down

88

65433

方向鍵:下

KP_End

87

65436

End

KP_Enter

108

65421

Enter

KP_Home

79

65429

Home

KP_Insert

90

65438

Insert

KP_Left

83

65430

方向鍵:左

KP_Multiply

63

65450

運算鍵:*

KP_Next

89

65435

PageDown

KP_Prior

81

65434

PageUp

KP_Right

85

65432

方向鍵:右

KP_Subtract

82

65453

“-”鍵

KP_Up

80

65431

方向鍵:上

Next

105

65366

PageDown

Num_Lock

77

65407

NumLock

Pause

110

65299

Pause

Print

111

65377

PrintScreen

Prior

99

65365

PageUp

Return

36

65293

回車鍵

Right

102

65363

方向鍵:右

Scroll_Lock

78

65300

ScrollLock

Shift_L

50

65505

左手邊的Shift鍵

Shift_R

62

65506

有手邊的Shift鍵

Tab

23

65289

Tab

Up

98

65362

方向鍵:上

至此,我們可以寫出模擬Ctrl+V的代碼

import virtkey
import time


v = virtkey.virtkey()
v.press_keysym(65507) #Ctrl鍵位
v.press_unicode(ord('v')) #模擬字母V
v.release_unicode(ord('v'))
v.release_keysym(65507)
time.sleep(5)
v.press_keysym(65421) #Enter
v.release_keysym(65421)

Copyright © Linux教程網 All Rights Reserved