Python + Selenium: 键盘操作

之前曾经提到过使用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,第一时间收到文章推送哦

微信

你可能感兴趣的:(Python+Selenium,Python,Selenium)