web自动化测试第7步:模拟键盘事件(Keys)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/CCGGAAG/article/details/76038042

对于模拟键盘事件,我们之前的文章中已经有了一些了解,比如基础操作send_keys()方法输入任意值、鼠标事件key_down()、key_up()等,这一节呢,我们也比较简单,我们专门来讲一讲如何使用引入的common.keys库来模拟键盘来操控浏览器。

一、基础格式写法

具体用法其实和我们之前对浏览器输入框所用的方法:send_keys()是一样的,只不过我们通过keys类,可以输入webdriver包中对应的键盘操作。

**Keys.BACK_SPACE:回退键(BackSpace)**

**# Keys.TAB:制表键(Tab)**

# Keys.ENTER:回车键(Enter)

# Keys.SHIFT:大小写转换键(Shift)

# Keys.CONTROL:Control键(Ctrl)

# Keys.ALT:ALT键(Alt)

# Keys.ESCAPE:返回键(Esc)

# Keys.SPACE:空格键(Space)

# Keys.PAGE_UP:翻页键上(Page Up)

# Keys.PAGE_DOWN:翻页键下(Page Down)

# Keys.END:行尾键(End)

# Keys.HOME:行首键(Home)

# Keys.LEFT:方向键左(Left)

# Keys.UP:方向键上(Up)

# Keys.RIGHT:方向键右(Right)

# Keys.DOWN:方向键下(Down)

# Keys.INSERT:插入键(Insert)

# DELETE:删除键(Delete)

# NUMPAD0 ~ NUMPAD9:数字键1-9

# F1 ~ F12:F1 - F12键

# (Keys.CONTROL, ‘a’):组合键Control+a,全选

# (Keys.CONTROL, ‘c’):组合键Control+c,复制

# (Keys.CONTROL, ‘x’):组合键Control+x,剪切

# (Keys.CONTROL, ‘v’):组合键Control+v,粘贴

 

首先我们要导入keys库

  • from selenium.webdriver.common.keys import Keys

输入单个键盘按键:

  • 小键盘按键3:send_keys(Keys.NUMPAD3)

输入多次的同一个按键

  • 按10次小键盘按键3:send_keys(Keys.NUMPAD3*10)

输入组合按键:

  • 全选Ctrl+A: send_keys(Keys.CONTROL, "a")

二、键盘按键引用对照

我们通过keys类中,找到了键盘按键所对应的值:     


 
 
  1.     NULL = '\ue000'
  2.         CANCEL = '\ue001'  # ^break
  3.         HELP = '\ue002'
  4.         BACKSPACE = '\ue003'
  5.         BACK_SPACE = BACKSPACE
  6.         TAB = '\ue004'
  7.         CLEAR = '\ue005'
  8.         RETURN = '\ue006'
  9.         ENTER = '\ue007'
  10.         SHIFT = '\ue008'
  11.         LEFT_SHIFT = SHIFT
  12.         CONTROL = '\ue009'
  13.         LEFT_CONTROL = CONTROL
  14.         ALT = '\ue00a'
  15.         LEFT_ALT = ALT
  16.         PAUSE = '\ue00b'
  17.         ESCAPE = '\ue00c'
  18.         SPACE = '\ue00d'
  19.         PAGE_UP = '\ue00e'
  20.         PAGE_DOWN = '\ue00f'
  21.         END = '\ue010'
  22.         HOME = '\ue011'
  23.         LEFT = '\ue012'
  24.         ARROW_LEFT = LEFT
  25.         UP = '\ue013'
  26.         ARROW_UP = UP
  27.         RIGHT = '\ue014'
  28.         ARROW_RIGHT = RIGHT
  29.         DOWN = '\ue015'
  30.         ARROW_DOWN = DOWN
  31.         INSERT = '\ue016'
  32.         DELETE = '\ue017'
  33.         SEMICOLON = '\ue018'
  34.         EQUALS = '\ue019'
  35.         NUMPAD0 = '\ue01a'  # number pad keys
  36.         NUMPAD1 = '\ue01b'
  37.         NUMPAD2 = '\ue01c'
  38.         NUMPAD3 = '\ue01d'
  39.         NUMPAD4 = '\ue01e'
  40.         NUMPAD5 = '\ue01f'
  41.         NUMPAD6 = '\ue020'
  42.         NUMPAD7 = '\ue021'
  43.         NUMPAD8 = '\ue022'
  44.         NUMPAD9 = '\ue023'
  45.         MULTIPLY = '\ue024'
  46.         ADD = '\ue025'
  47.         SEPARATOR = '\ue026'
  48.         SUBTRACT = '\ue027'
  49.         DECIMAL = '\ue028'
  50.         DIVIDE = '\ue029'
  51.         F1 = '\ue031'  # function  keys
  52.         F2 = '\ue032'
  53.         F3 = '\ue033'
  54.         F4 = '\ue034'
  55.         F5 = '\ue035'
  56.         F6 = '\ue036'
  57.         F7 = '\ue037'
  58.         F8 = '\ue038'
  59.         F9 = '\ue039'
  60.         F10 = '\ue03a'
  61.         F11 = '\ue03b'
  62.         F12 = '\ue03c'
  63.         META = '\ue03d'
  64.         COMMAND = '\ue03d'

三、实例演示

百度注册页面,我们把手机号码输入框中的数据,通过键盘按键Ctrl + C 、Ctrl + V复制到用户名输入框。


 


 
 
  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys
  3. from time import sleep
  4. # 模拟键盘操作-百度登录页面
  5. driver = webdriver.Chrome()
  6. driver.get( "https://passport.baidu.com/v2/?reg")
  7. # 用户名元素定位和手机号元素定位
  8. name_element=driver.find_element_by_css_selector( "#TANGRAM__PSP_3__userName")
  9. phone_element=driver.find_element_by_css_selector( "#TANGRAM__PSP_3__phone")
  10. # 在名字输入框输入10个数字键3
  11. name_element.send_keys(Keys.NUMPAD3* 10)
  12. # 在手机号输入框输入手机号码
  13. phone_element.send_keys( "18812345678")
  14. # 在手机号输入框进行组合键Ctrl+a 、 Ctrl+x
  15. phone_element.send_keys(Keys.CONTROL, "a")
  16. sleep( 1)
  17. phone_element.send_keys(Keys.CONTROL, "x")
  18. # 在名字输入框输入组合键Ctrl+v
  19. name_element.clear()
  20. name_element.send_keys(Keys.CONTROL, "v")

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值