qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

轻松自动化---selenium-webdriver(python) (十二)之模拟键盘

本节重点:

  • 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 pythonsend_keys()中输入中文一直报错,其实前面加个小就解决了:

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’
复制代码

 

 

 

--------------------------

学习更多selenium 内容:

 「功能测试自动化」汇总

posted on 2014-03-26 13:26 顺其自然EVO 阅读(1079) 评论(0)  编辑  收藏 所属分类: 自动化测试python


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜