python selenium ---键盘事件
转自:http://www.cnblogs.com/fnng/p/3258946.html
本节重点:
- l 键盘按键用法
- l 键盘组合键用法
- l send_keys() 输入中文运行报错问题
键盘按键键用法:

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys #需要引入keys包
import os,time driver = webdriver.Firefox()
driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fwebcloud.kuaibo.com%2F") time.sleep(3)
driver.maximize_window() # 浏览器全屏显示 driver.find_element_by_id("user_name").clear()
driver.find_element_by_id("user_name").send_keys("fnngj") #tab的定位相相于清除了密码框的默认提示信息,等同上面的clear()
driver.find_element_by_id("user_name").send_keys(Keys.TAB)
time.sleep(3)
driver.find_element_by_id("user_pwd").send_keys("123456") #通过定位密码框,enter(回车)来代替登陆按钮
driver.find_element_by_id("user_pwd").send_keys(Keys.ENTER)
'''
#也可定位登陆按钮,通过enter(回车)代替click()
driver.find_element_by_id("login").send_keys(Keys.ENTER)
'''
time.sleep(3) time.sleep(3)
driver.quit()

要想调用键盘按键操作需要引入keys包:
from selenium.webdriver.common.keys import Keys
通过send_keys()调用按键:
send_keys(Keys.TAB) # TAB
send_keys(Keys.ENTER) # 回车
注意:这个操作和页面元素的遍历顺序有关,假如当前定位在账号输入框,按键盘的tab键后遍历的不是密码框,那就不法输入密码。 假如输入密码后,还有需要填写验证码,那么回车也起不到登陆的效果。
这并不是一种好的方法,这里只是为了验证单个按键的用法
键盘组合键用法:

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os,time driver = webdriver.Firefox() driver.get("http://www.baidu.com") #输入框输入内容
driver.find_element_by_id("kw").send_keys("selenium")
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(u"虫师 cnblogs")
driver.find_element_by_id("su").click() time.sleep(3)
driver.quit()

上面的操作没有实际意义,但向我们演示了键盘组合按键的用法。
输入中文问题
顺便解决了一个困扰我到现的一个输入中文件的问题。selenium2 python在send_keys()中输入中文一直报错,其实前面加个小u 就解决了:
send_keys(u"输入中文")
基本上键盘上所有的按键都可以模拟

module:selenium.webdriver.common.keys
• class Keys()
– NULL = u’ue000’
– CANCEL = u’ue001’ # ^break
– HELP = u’ue002’
– BACK_SPACE = u’ue003’
– TAB = u’ue004’
– CLEAR = u’ue005’
– RETURN = u’ue006’
– ENTER = u’ue007’
– SHIFT = u’ue008’
– LEFT_SHIFT = u’ue008’ # alias
– CONTROL = u’ue009’
– LEFT_CONTROL = u’ue009’ # alias
– ALT = u’ue00a’
– LEFT_ALT = u’ue00a’ # alias
– PAUSE = u’ue00b’
– ESCAPE = u’ue00c’
– SPACE = u’ue00d’
– PAGE_UP = u’ue00e’
– PAGE_DOWN = u’ue00f’
– END = u’ue010’
– HOME = u’ue011’
– LEFT = u’ue012’
– ARROW_LEFT = u’ue012’ # alias
– UP = u’ue013’
– ARROW_UP = u’ue013’ # alias
– RIGHT = u’ue014’
– ARROW_RIGHT = u’ue014’ # alias
– DOWN = u’ue015’
– ARROW_DOWN = u’ue015’ # alias
– INSERT = u’ue016’
– DELETE = u’ue017’
– SEMICOLON = u’ue018’
– EQUALS = u’ue019’
– NUMPAD0 = u’ue01a’ # numbe pad keys
– NUMPAD1 = u’ue01b’
– NUMPAD2 = u’ue01c’
– NUMPAD3 = u’ue01d’
– NUMPAD4 = u’ue01e’
– NUMPAD5 = u’ue01f’
– NUMPAD6 = u’ue020’
– NUMPAD7 = u’ue021’
– NUMPAD8 = u’ue022’
– NUMPAD9 = u’ue023’
– MULTIPLY = u’ue024’
– ADD = u’ue025’
– SEPARATOR = u’ue026’
– SUBTRACT = u’ue027’
– DECIMAL = u’ue028’
– DIVIDE = u’ue029’
– F1 = u’ue031’ # function keys
– F2 = u’ue032’
– F3 = u’ue033’
– F4 = u’ue034’
– F5 = u’ue035’
– F6 = u’ue036’
– F7 = u’ue037’
– F8 = u’ue038’
– F9 = u’ue039’
– F10 = u’ue03a’
– F11 = u’ue03b’
– F12 = u’ue03c’
– META = u’ue03d’
– COMMAND = u’ue03d’

python selenium ---键盘事件的更多相关文章
- 10 Python+Selenium键盘事件
[环境信息] python3.6+selenium3.0.2+Firefox50.0+win7 [操作方法] 导入方法:from selenium.webdriver.common.keys impo ...
- selenium:2.selenium 键盘事件模拟
今晚不想加班,于是赶紧回来看看书,不知道今天怎么就突然特别想玩文明五,但是又要克制自己咯,所以还是看看书吧,干的事情有: 1.下了selenium的小工具:FireBug/FirePath. 2.确定 ...
- python selenium --鼠标事件
转自:http://www.cnblogs.com/fnng/p/3288444.html 本节重点: ActionChains 类 context_click() 右击 double_click( ...
- python + selenium相关事件和元素定位
女友由于工作上的失误,将公司RDM中的某一字段的2000条数据给删除了.....就算是重新添加字段,但是与其他数据的关联性已经不在了.由于每天的数据修改量大,有关部门不愿意恢复数据库,因此只能一条条的 ...
- 9 Python+Selenium鼠标事件
[环境信息] python3.6+Selenium3.0.2+Firefox50.0+win7 [ActionChains类鼠标事件的常用方法] 1.右击:context_click() 2.双击:d ...
- Python+Selenium - 键盘操作
导包代码: from selenium.webdriver.common.keys import Keys 用法: driver.find_element("id","k ...
- python+selenium 鼠标事件操作
一.前言 除了可以使用 click( ) 来模拟鼠标的单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键.双击.悬停.拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封 ...
- selenium 键盘事件 模拟ctrl+v 然后键盘点击回车键
#windows下执行 import win32api,win32con,win32clipboard as w #获取剪切板内容 def get_text(): w.OpenClipboard() ...
- python 采坑总结 调用键盘事件后导致键盘失灵的可能原因
在练习python封装键盘事件的时候,实现一个keyDown和keyUp的功能: @staticmethod def keyDown(keyName): #按下按键 ...
随机推荐
- echarts 关系图graph force布局 拖动节点并固定不返回原点
myChart.on('mouseup',function(params){var option=myChart.getOption();option.series[0].nodes[params.d ...
- 102.愤怒的LJF
2841 愤怒的LJF 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description LJF发现ZPC的积分比他高,他很愤 ...
- [转]SpringMVC拦截器详解[附带源码分析]
目录 前言 重要接口及类介绍 源码分析 拦截器的配置 编写自定义的拦截器 总结 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:ht ...
- HDU 5638 Toposort 拓扑排序 优先队列
Toposort 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 Description There is a directed acycli ...
- mysql备份相关
1linux下mysql导出文件 备份mysql数据库的命令 mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql 例如:mysqldump -uro ...
- C语言读书笔记
1.c语言中一共有32个关键字,分别是: auto.int.double.long.char.short.float.unsigned.signed.sizeof.extern. static.got ...
- JavaScript基础入门教程(五)
说明 本系列博客的第一篇已经说明了,要求阅读者需要具有其它语言的编程基础,所以关于组数的基础部分本篇博客将不再赘述,主要讲js中数组的特性. 创建数组 数组的创建主要有两种方法,一种是数组直接量,还有 ...
- this和$(this)的关系
环境关键字this引用的是DOM元素 $(this)是jQuery对象 下面点击按钮分别alert一下 alert(this); alert($(this)); 获取DOM对象的属性id,可以 $(t ...
- [Linux] Linux smaps接口文件结构
在Linux内核 2.6.16中引入了一个系统内存接口特性,这个接口位于/proc/$pid/目录下的smaps文件中 ,一看内容发现是进程内存映像信息,比同一目录下的maps文件更详细些. 400d ...
- mysql-operator 尝试与研究
安装指南 先下载到本地 git clone https://github.com/kubernetes/charts.git 安装helm 参考: http://www.cnblogs.com/eri ...