selenium库的使用(十):send_keys()模拟按键输入

想要模拟按键输入,比如复制快捷键 Ctrl + C ,既可以使用 ActionChains 动作链实现,也可以使用webelement对象的 send_keys() 方法实现

keys类属性

keys类

断开键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
NULL = '\ue000'         # 空键
CANCEL = '\ue001' # Cancel键,相当于ESC键
HELP = '\ue002' # Help键
BACKSPACE = '\ue003' # BackSpace退格键
BACK_SPACE = BACKSPACE # BackSpace退格键
TAB = '\ue004' # Tab键
CLEAR = '\ue005' # 关闭NumLock的5键
RETURN = '\ue006' # Return回车键(Mac)
ENTER = '\ue007' # Enter回车键
SHIFT = '\ue008' # Shift键
LEFT_SHIFT = SHIFT # Shift键
CONTROL = '\ue009' # Ctrl键
LEFT_CONTROL = CONTROL # Ctrl键
ALT = '\ue00a' # Alt键
LEFT_ALT = ALT # Alt键
PAUSE = '\ue00b' # Pause键
ESCAPE = '\ue00c' # ESC键
SPACE = '\ue00d' # 空格键
PAGE_UP = '\ue00e' # PgUp键
PAGE_DOWN = '\ue00f' # PgDn键
END = '\ue010' # End键
HOME = '\ue011' # Home键
LEFT = '\ue012' # ← 键
ARROW_LEFT = LEFT # ← 键
UP = '\ue013' # ↑ 键
ARROW_UP = UP # ↑ 键
RIGHT = '\ue014' # → 键
ARROW_RIGHT = RIGHT # → 键
DOWN = '\ue015' # ↓ 键
ARROW_DOWN = DOWN # ↓ 键
INSERT = '\ue016' # Insert键
DELETE = '\ue017' # Delete键
SEMICOLON = '\ue018' # ; 键
EQUALS = '\ue019' # = 键

数字键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 数字0到9键
NUMPAD0 = '\ue01a'
NUMPAD1 = '\ue01b'
NUMPAD2 = '\ue01c'
NUMPAD3 = '\ue01d'
NUMPAD4 = '\ue01e'
NUMPAD5 = '\ue01f'
NUMPAD6 = '\ue020'
NUMPAD7 = '\ue021'
NUMPAD8 = '\ue022'
NUMPAD9 = '\ue023'

MULTIPLY = '\ue024' # * 键
ADD = '\ue025' # + 键
SEPARATOR = '\ue026' # , 键
SUBTRACT = '\ue027' # - 键
DECIMAL = '\ue028' # . 键
DIVIDE = '\ue029' # / 键

功能键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# F1到F12键
F1 = '\ue031'
F2 = '\ue032'
F3 = '\ue033'
F4 = '\ue034'
F5 = '\ue035'
F6 = '\ue036'
F7 = '\ue037'
F8 = '\ue038'
F9 = '\ue039'
F10 = '\ue03a'
F11 = '\ue03b'
F12 = '\ue03c'

META = '\ue03d' # '命令⌘’键(Mac),⊞键(Windows)
COMMAND = '\ue03d' # Command键(Mac系统)

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://www.gaoyuanqi.cn/python-html-1/#more')

# 等待2s
time.sleep(2)

# 通过name的属性值定位输入框,得到一个WebElement对象
webelement = driver.find_element_by_name('t2')

# 输入文本
webelement.send_keys('雨园博客')
time.sleep(2)

# 删除后一个字符
webelement.send_keys(Keys.BACKSPACE)
time.sleep(2)

# Ctrl+A 全选
webelement.send_keys(Keys.CONTROL, 'a')
# Ctrl+X 剪贴
webelement.send_keys(Keys.CONTROL, 'x')
time.sleep(2)

# 输入文本
webelement.send_keys('1314')
time.sleep(2)

# 回车
webelement.send_keys(Keys.ENTER)
time.sleep(2)

# Ctrl+V 粘贴
webelement.send_keys(Keys.CONTROL, 'v')

time.sleep(5)

# 退出驱动并关闭浏览器
driver.quit()