歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

之前在做自動化測試中需要用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