上节我们了解了浏览器对象的操作,这节我们将上节内容完善下,学下键盘事件,废话不多说,搞起来~
一、模拟键盘按键
从之前的内容我们了解到,在进行点击事件的时候,我们知道click()方法可以实现模拟鼠标点击,那么可能有人会问道,那怎么模拟Enter呢?
这样模拟:
导入keys包
直接调用send_keys()方法即可
例子:
之前我们这样做实现搜索:
#encoding=utf-8
from selenium import webdriver
import time
fuck_test=webdriver.Chrome()
fuck_test.get("https://www.baidu.com")
fuck_test.find_element_by_id("kw").send_keys("fuck_test")
fuck_test.find_element_by_id('su').click()
现在我们这样做:
#encoding=utf-8
from selenium import webdriver
from selenium.webdriver.common import keys
import time
fuck_test=webdriver.Chrome()
fuck_test.get("https://www.baidu.com")
fuck_test.find_element_by_id("kw").send_keys("fuck_test")
fuck_test.find_element_by_id("kw").send_keys(keys.Keys.ENTER)
就可实现通过定位密码框,不用定位搜索框实现回车搜索
相信大家在账户登录,文本换行的时候都会用到ENTER回车,很有用的一个键盘事件
其他的键盘事件,比如TAB,BACKSPACE,CTRL,ALT等请查看keys库,写的很全:
二、组合键盘事件
举个栗子:
#encoding=utf-8
from selenium import webdriver
from selenium.webdriver.common import keys
import time
fuck_test=webdriver.Chrome()
fuck_test.get("https://www.baidu.com")
fuck_test.find_element_by_id("kw").send_keys("fuck_test")
time.sleep(5)
fuck_test.find_element_by_id('kw').send_keys(keys.Keys.CONTROL+"a")#选中
fuck_test.find_element_by_id('kw').send_keys(keys.Keys.CONTROL+"x")#剪切
fuck_test.find_element_by_id("kw").send_keys("phyger")#重新输入
fuck_test.find_element_by_id("kw").send_keys(keys.Keys.ENTER)
上面的例子进行了:先输入“fuck_test”,发现输入有误,选中,剪切,重新输入“phyger”进行搜索的整个过程
主要意义是展示键盘组合事件的发生
三、关于send_keys()中文乱码的问题
在selenium2中,send_keys(“中文”)的时候回报编码错误的问题,我们只需要在中文前面加“u”即可,即:send_keys(u“中文”)
ok,今天就到这,短小精悍是我们的目标,祝你看的愉快~
兄dei~如果你觉得还行,大家一起学习,共同进步~
扫码关注,精彩不容错过