上节介绍了模拟鼠标对元素的操作,本节主要介绍键盘对元素的操作,实际过程中鼠标对元素的操作比键盘对元素的操作更经常使用,但是键盘对元素的操作也很重要,本节主要介绍一下键盘对元素的操作。
selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘操作。
#导入Keys 模块,然后我们看看Keys 模块定义了那些按键
from selenium.webdriver.common.keys import Keys
导入模块以后,我们可以看看具体的定义按键内容,我已经把经常使用的按键注释标记。
NULL = '\ue000'CANCEL= '\ue001' #^break
HELP = '\ue002'BACKSPACE= '\ue003'BACK_SPACE=BACKSPACE #删除键
TAB= '\ue004' #TAB键CLEAR= '\ue005'RETURN= '\ue006'ENTER= '\ue007' #回车键SHIFT= '\ue008' #Shift键LEFT_SHIFT=SHIFT
CONTROL= '\ue009'LEFT_CONTROL=CONTROL #Ctrl 键
ALT= '\ue00a' #Alt 键LEFT_ALT=ALT
PAUSE= '\ue00b'ESCAPE= '\ue00c' #ECS键SPACE= '\ue00d' #空格键PAGE_UP= '\ue00e' #PgUp 键PAGE_DOWN= '\ue00f' #PgDwon 键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' #del键SEMICOLON= '\ue018' #';'键EQUALS= '\ue019' #'='键#数字键盘
NUMPAD0= '\ue01a' #number pad keys
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' #'/'键F1= '\ue031' #function keys
F2 = '\ue032'F3= '\ue033'F4= '\ue034'F5= '\ue035'F6= '\ue036'F7= '\ue037'F8= '\ue038'F9= '\ue039'F10= '\ue03a'F11= '\ue03b'F12= '\ue03c'META= '\ue03d'COMMAND= '\ue03d'
看到模块中包含了很多的按键但是真正实际使用的按键不多,所以我下面对按键的操作将一些方法介绍一下,就不会对所有的按键详细介绍。
1.首先我们了解下组合键,什么是组合键,比如我们经常使用的Ctrl + A ,Ctrl + C 等都是组合键。我们先看个例子
在使用按键操作的时候我们需要借助一下send_keys()来模拟操作,Keys.CONTROL 也就是我们键盘上的Ctrl键,下面是几个常用的组合键。
send_keys(Keys.CONTROL,'a') #全选(Ctrl+A)
send_keys(Keys.CONTROL,'c') #复制(Ctrl+C)
send_keys(Keys.CONTROL,'x') #剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') #粘贴(Ctrl+V)
我们下面使用Ctrl + A 来编写一个实例,看一下组合键的使用。
#-*- coding:utf-8 -*-
from selenium.webdriver.common.keys importKeysfrom selenium importwebdriverimporttime
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys('AAAAAAAAAAAA')
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a') #注意这里组合键的输入。
time.sleep(10)
driver.quit()
2.下面常用的键,这些常用键主要是非组合键,直接输入即可。
回车键 Keys.ENTER
删除键 Keys.BACK_SPACE
空格键 Keys.SPACE
制表键 Keys.TAB
回退键 Keys.ESCAPE
刷新键 Keys.F5
下面我们选择一个常用的键,来编写一个例子,使用回车键来代替鼠标的click()键
#-*- coding:utf-8 -*-
from selenium.webdriver.common.keys importKeysfrom selenium importwebdriverimporttime
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("http://cn.bing.com/")
driver.find_element_by_id('sb_form_q').send_keys('selenium')
driver.find_element_by_id("sb_form_go").send_keys(Keys.ENTER) #通过回车键来代替鼠标的左键
driver.quit()
这里我们可以看到跟鼠标的模拟效果是一样。
上面的两个例子说明了使用组合键和单个按键来操作元素,因为按键的使用起来比较简单,主要是认识每个按键代表的意思,这样我们就可以顺利的使用按键。