之前曾经提到过使用Selenium进行鼠标操作,键盘操作除了经常使用的send_keys(’’)进行输入之外,Selenium的Keys类还包括一些功能键的使用,如Ctrl,Alt,Delete等等,今天就来熟悉一下这些键的实际使用。
Keys类
一些键有固定的表示方法,还可以用特别的代码来表示。可以参考
Selenium API
键名 | 表示代码 | 说明 |
---|---|---|
ADD | ‘\ue025’ | '+'键 |
ALT | ‘\ue00a’ | 'ALT’键 |
ARROW_DOWN | ‘\ue015’ | '↓’键 |
ARROW_LEFT | '\ue012 | '←’键 |
ARROW_RIGHT | ‘\ue014’ | '→’键 |
ARROW_UP | ‘\ue013’ | '↑’键 |
BACKSPACE | ‘\ue003’ | 'BackSpace’退格键 |
BACK_SPACE | ‘\ue003’ | 'BackSpace’退格键(同上) |
CANCEL | ‘\ue001’ | 'Cancel’键,相当于ESC键 |
CLEAR | ‘\ue005’ | 关闭NumLock的’5’键 |
COMMAND | ‘\ue03d’ | 'Command’键(Mac系统) |
CONTROL | ‘\ue009’ | 'Control’键 |
DECIMAL | ‘\ue028’ | '.'键 |
DELETE | ‘\ue017’ | 'Delete’键 |
DIVIDE | ‘\ue029’ | '/'键 |
DOWN | ‘\ue015’ | '↓’键 |
END | ‘\ue010’ | 'End’键 |
ENTER | ‘\ue007’ | 'Enter’回车键 |
EQUALS | ‘\ue019’ | '='键 |
ESCAPE | ‘\ue00c’ | 'Esc’键 |
F1 | '\ue031 | 'F1’键 |
F10 | ‘\ue03a’ | 'F10’键 |
F11 | ‘\ue03b’ | 'F11’键 |
F12 | ‘\ue03c’ | 'F12键 |
F2 | ‘\ue032’ | 'F2’键 |
F3 | ‘\ue033’ | 'F3’键 |
F4 | ‘\ue034’ | 'F4’键 |
F5 | ‘\ue035’ | 'F5’键 |
F6 | ‘\ue036’ | 'F6’键 |
F7 | ‘\ue037’ | 'F7’键 |
F8 | ‘\ue038’ | 'F8’键 |
F9 | ‘\ue039’ | 'F9’键 |
HELP | ‘\ue002’ | 'Help’键 |
HOME | ‘\ue011’ | 'Home’键 |
INSERT | ‘\ue016’ | 'Insert’键 |
LEFT | ‘\ue012’ | '←’键 |
LEFT_ALT | ‘\ue00a’ | 'Alt’键 |
LEFT_CONTROL | '\ue009 | 'Control’键 |
LEFT_SHIFT | ‘\ue008’ | 'Shift’键 |
META | ‘\ue03d’ | '命令⌘’键(Mac),'Windows’⊞键(Windows) |
MULTIPLY | ‘\ue024’ | '*'键 |
NULL | ‘\ue000’ | ''空键 |
NUMPAD0 | ‘\ue01a’ | '0’键 |
NUMPAD1 | ‘\ue01b’ | '1’键 |
NUMPAD2 | ‘\ue01c’ | '2’键 |
NUMPAD3 | ‘\ue01d’ | '3’键 |
NUMPAD4 | ‘\ue01e’ | '4’键 |
NUMPAD5 | ‘\ue01f’ | '5’键 |
NUMPAD6 | ‘\ue020’ | '6’键 |
NUMPAD7 | ‘\ue021’ | '7’键 |
NUMPAD8 | ‘\ue022’ | '8’键 |
NUMPAD9 | ‘\ue023’ | '9’键 |
PAGE_DOWN | ‘\ue00f’ | 'Page Down’键 |
PAGE_UP | ‘\ue00e’ | 'Page Up’键 |
PAUSE | '\ue00b | 'Pause’键 |
RETURN | ‘\ue006’ | 'Return’回车键(Mac) |
RIGHT | ‘\ue014’ | '→’键 |
SEMICOLON | ‘\ue018’ | ';'键 |
SEPARATOR | ‘\ue026’ | ','键 |
SHIFT | ‘\ue008’ | 'Shift’键 |
SPACE | ‘\ue00d’ | 'Space’空格键 |
SUBTRACT | ‘\ue027’ | '-'键 |
TAB | ‘\ue004’ | 'Tab’键 |
UP | ‘\ue013’ | '↑’键 |
键看起来很多,比较常用的我用红色标记出来了,基本就是键盘的原意,很好记忆,而代替的代码可以不用特意去背。
实例
一般使用有两种,有一些可以单独使用的键,如删除、回车、空格等可以直接使用,有一些需要配合使用的键,如Control、Shift等,需要同时把两个键都放到send_keys()中,另外在使用之前,记得要引入Keys的类包。
因为只是示范一下使用方法,就直接在百度首页输入删除几个字符来作为实例了,为了让实例运行起来能清晰看到过程,每一步之间都用sleep()来暂停几秒。
- 直接使用
# coding = utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys #引入Keys类包
from time import sleep
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('https://www.baidu.com')
input = driver.find_element_by_id('kw') #定位搜索框
sleep(2)
input.send_keys('this is a test')
sleep(2)
for n in range(4):
input.send_keys(Keys.LEFT) #光标左移四次
#可以用input.send_keys('\ue012')代替
sleep(2)
for n in range(4):
input.send_keys(Keys.DELETE) #向后删除四个字母,即'test'
sleep(2)
input.send_keys(Keys.BACK_SPACE) #向前删除一个字符,即空格
sleep(2)
input.send_keys(Keys.SPACE) #继续添加一个空格
sleep(2)
input.send_keys('a test two')
sleep(2)
input.send_keys(Keys.ENTER) #点击回车,开始搜索
sleep(5)
driver.quit()
- 配合使用
# coding = utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys #引入Keys类包
from time import sleep
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('https://www.baidu.com')
input = driver.find_element_by_id('kw') #定位搜索框
sleep(2)
input.send_keys(Keys.SHIFT, 'what ') #字母会变味大写WHAT
sleep(2)
input.send_keys('is python')
sleep(2)
input.send_keys(Keys.CONTROL, 'a') #control + a 全选
sleep(2)
input.send_keys(Keys.CONTROL, 'c') #control + c 复制
sleep(2)
input.send_keys(Keys.BACKSPACE)
sleep(2)
input.send_keys(Keys.CONTROL, 'v')#control + v 粘贴
sleep(2)
input.send_keys(Keys.ENTER)
sleep(5)
driver.quit()
键盘输入也可以配合之前的ActionChains类的key_up(),key_down()使用,记得最后要使用perform()操作才会生效哦。