Selenium篇10-WEB自动化中的键盘事件

前言

有一段时间没有更新Selenium相关的博客内容,今天趁着周末总结一篇关于Selenium自动化中的键盘事件。大家有时间可以看一下Selenium栏前面的相关内容。

1、概念

什么是键盘事件。Web自动化中的键盘事件指的是,让机器模拟人在键盘上完成的动作称为键盘事件。在Selenium中,提供了一个Keys来完成键盘事件。

2、Keys源码

# 导入Keys 模块
from selenium.webdriver.common.keys import Keys
from __future__ import unicode_literals

class Keys(object):
    """
    Set of special keys codes.
    """

    NULL = '\ue000'
    CANCEL = '\ue001'  # ^break
    HELP = '\ue002'
    BACKSPACE = '\ue003'
    BACK_SPACE = BACKSPACE   #删除键
    TAB = '\ue004'   #TAB键
    CLEAR = '\ue005'
    RETURN = '\ue006'
    ENTER = '\ue007'   #回车键
    SHIFT = '\ue008'   #Shift键
    LEFT_SHIFT = SHIFT
    CONTROL = '\ue009'
    LEFT_CONTROL = CONTROL   #Ctrl 键
    ALT = '\ue00a'           #Alt 键
    LEFT_ALT = ALT
    PAUSE = '\ue00b'
    ESCAPE = '\ue00c'   #ECS键
    SPACE = '\ue00d'    #空格键
    PAGE_UP = '\ue00e'   #PgUp 键
    PAGE_DOWN = '\ue00f' #PgDwon 键
    END = '\ue010'    #END 键
    HOME = '\ue011'   #HOME 键
    LEFT = '\ue012'  #左键
    ARROW_LEFT = LEFT
    UP = '\ue013'    #上键
    ARROW_UP = UP
    RIGHT = '\ue014'
    ARROW_RIGHT = RIGHT  #右键
    DOWN = '\ue015'      #下键
    ARROW_DOWN = DOWN
    INSERT = '\ue016'    #insert键
    DELETE = '\ue017'    #del键
 
    SEMICOLON = '\ue018'  #';'键
    EQUALS = '\ue019'     #'='键
  #数字键盘
    NUMPAD0 = '\ue01a'  # number pad keys
    NUMPAD1 = '\ue01b'
    NUMPAD2 = '\ue01c'
    NUMPAD3 = '\ue01d'
    NUMPAD4 = '\ue01e'
    NUMPAD5 = '\ue01f'
    NUMPAD6 = '\ue020'
    NUMPAD7 = '\ue021'
    NUMPAD8 = '\ue022'
    NUMPAD9 = '\ue023'
    MULTIPLY = '\ue024' # '*' 键
    ADD = '\ue025'   # '+' 键
    SEPARATOR = '\ue026'  #','键
    SUBTRACT = '\ue027'  # '-' 键
    DECIMAL = '\ue028'   # '.'键
    DIVIDE = '\ue029'    #'/'键
 
    F1 = '\ue031'  # function  keys
    F2 = '\ue032'
    F3 = '\ue033'
    F4 = '\ue034'
    F5 = '\ue035'
    F6 = '\ue036'
    F7 = '\ue037'
    F8 = '\ue038'
    F9 = '\ue039'
    F10 = '\ue03a'
    F11 = '\ue03b'
    F12 = '\ue03c'
 
    META = '\ue03d'
    COMMAND = '\ue03d'

大家可以查看源码后,Keys类中有很多属性,每一个属性代表键盘中一个按钮。

3、使用

# 导入Keys 模块
from selenium.webdriver.common.keys import Keys

3.1 单键使用

回车键 Keys.ENTER

删除键 Keys.BACK_SPACE

空格键 Keys.SPACE

制表键 Keys.TAB

回退键 Keys.ESCAPE

刷新键 Keys.F5

3.2 组合键使用

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)

4、运用

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
# 初始化浏览器后,习惯性加上隐式等待
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
input_ele = driver.find_element_by_id("kw")
input_ele.send_keys('拉菲MaynardCSDN')
# 输入回车,在元素上调用.send_keys()
# 使用回车键
input_ele.send_keys(Keys.ENTER)
time.sleep(2)

driver.quit()

5、总结

  • 1、键盘事件是element的行为,不是driver的行为;
  • 2、Keys类把所有键盘位置按钮对应都封装成了一个属性,提高了可读性,使用起来更加方便;

ps :

1、后续内容还有js 操作页面元素,类封装,运用以及上传文件等等内容分享,博主会抽时间进行分享。
2、有什么问题,欢迎大家评论区评论交流!谢谢大家!
3、如果觉得博主这篇博客对大家有用,麻烦评论区留下自己的‘脚印’ !

你可能感兴趣的:(Selenium,selenium)