之前曾经提到过使用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()操作才会生效哦。



欢迎订阅我的公众号:进击的小QA,第一时间收到文章推送哦

微信

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐