键盘事件

我们在实际的测试工作中,有时候我们在测试时需要使用tab 键将焦点转移到下一个元素,用于验证元素的排序是否正确。webdriver 的Keys()类提供键盘上所有按键的操作,甚至可以模拟一些组合建的操作,如Ctrl+A ,Ctrl+C/Ctrl+V 等。在某些更复杂的情况下,还会出现使用send_keys 来模拟上下键来操作下拉列表的情况。

代码示例:

#coding=utf-8


from selenium import webdriver
#引入Keys 类包
from selenium.webdriver.common.keys import Keys
import time


driver = webdriver.Firefox()
driver.get("http://www.baidu.com")


#输入框输入内容
driver.find_element_by_id("kw").send_keys("selenium")
time.sleep(3)


#删除多输入的一个m
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
time.sleep(3)

#输入空格键+“教程”
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys(u"教程")
time.sleep(3)


#ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')

time.sleep(3)

#ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
time.sleep(3)

#输入框重新输入内容,搜索
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
time.sleep(3)

#通过回车键盘来代替点击操作
driver.find_element_by_id("su").send_keys(Keys.ENTER)
time.sleep(3)

driver.quit()

说明:

需要说明的是上面脚本没什么实际意义,但向我们展示了组合键及键盘按键的用法。为了使用脚本的的运行过程更我们可以看得更加清晰,在每一步操作之后都加上了三秒的休眠时间time.sleep(),后面会再介绍time.sleep()方法的使用。

from selenium.webdriver.common.keys import Keys
在使用键盘按键方法前需要先导入keys 类包。

下面经常使用到的键盘操作:

send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
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)

Keys 类所提供的按键请查阅webdriver API.

原文地址:https://www.cnblogs.com/jshtest/p/6222456.html