Selenium3 + Python3自动化测试系列四——鼠标事件和键盘事件

1、鼠标事件

在 WebDriver 中, 将这些关于鼠标操做的方法封装在 ActionChains 类提供。 python

ActionChains 类提供了鼠标操做的经常使用方法。web

ActionChains 类的成员源码以下图所示:chrome

下面咱们经过一张表对上图中对外使用的成员进行分类(即带下划线的成员不放入下表):函数

分类 函数名 描述
鼠标操做 def click(self, on_element=None) 鼠标左键单击
鼠标操做 def click_and_hold(self, on_element=None) 鼠标左键按键,不释放
鼠标操做 def context_click(self, on_element=None) 鼠标右击
鼠标操做 def double_click(self, on_element=None) 鼠标左键双击
鼠标操做 def drag_and_drop(self, source, target) 鼠标拖曳动做,将指定元素位置拖曳到目标元素位置,来移动元素
鼠标操做 def drag_and_drop_by_offset(self, source, xoffset, yoffset) 鼠标拖曳动做,将指定元素按沿x、y方向拖曳指定距离来移动元素
鼠标操做 def move_by_offset(self, xoffset, yoffset) 将鼠标光标沿x、y方向移动指定距离,来实现鼠标的移动
鼠标操做 def move_to_element(self, to_element) 将鼠标光标移动到指定的元素上
鼠标操做 def move_to_element_with_offset(self, to_element, xoffset, yoffset) 将鼠标光标移动到指定的元素相对元素左上角位置偏移(xoffset、yoffset)的位置
鼠标操做 def release(self, on_element=None) 释放鼠标,与click_and_hold函数配对使用
键盘操做 def key_down(self, value, element=None) 按下指定的键盘按键
键盘操做 def key_up(self, value, element=None) 释放已按下的键盘按键(与key_down配套使用)
键盘操做 def send_keys(self, *keys_to_send) 键盘输入
键盘操做 def send_keys_to_element(self, element, *keys_to_send) 给指定元素(可输入元素)进行键盘输入
其余 def perform(self) 执行全部存储的动做
其余 def reset_actions(self) 清空全部存储的动做
其余 def pause(self, seconds) 在指定的时间内暂定全部的输入

  实例代码以下:ui

from selenium.webdriver import Chrome
from selenium.webdriver import ActionChains import time driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") driver.get('https://www.baidu.com') ''' 搜索点击查询博客园 driver.find_element_by_id("kw").send_keys("博客园") driver.find_element_by_id("su").click() ''' #鼠标悬移至“更多产品” above = driver.find_element_by_class_name("bri") ActionChains(driver).move_to_element(above).perform() time.sleep(5) driver.quit()

2、键盘事件

Keys()类提供了键盘上几乎全部按键的方法。 前面了解到, send_keys()方法能够用来模拟键盘输入, spa

除此 以外, 咱们还能够用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等。3d

selenium 提供了比较完整的键盘操做,在使用的模拟键盘操做以前须要咱们导入code

from selenium.webdriver.common.keys import Keys便可,而后就能够来模拟键盘操做。orm

#导入Keys 模块,而后咱们看看Keys 模块定义了那些按键
from selenium.webdriver.common.keys import Keys

导入模块之后,咱们能够看看具体的定义按键内容,我已经把常常使用的按键注释标记。blog

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'

组合键,好比咱们常常使用的Ctrl + A ,Ctrl + C 等都是组合键。咱们先看个例子

在使用按键操做的时候咱们须要借助一下send_keys()来模拟操做,Keys.CONTROL 也就是咱们键盘上的Ctrl键,下面是几个经常使用的组合键。

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)

下面咱们来练个手,看看键盘操做和组合键如何使用吧

from selenium.webdriver import Chrome from selenium.webdriver.common.keys import Keys import time driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") driver.get('https://www.baidu.com') #搜索点击查询博客园,多输入一个园字
driver.find_element_by_id("kw").send_keys("博客园园") time.sleep(2) #backspace回格键,删除多输入一个的 园
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE) time.sleep(2) #输入空格键,从新输入python
driver.find_element_by_id("kw").send_keys(Keys.SPACE) driver.find_element_by_id("kw").send_keys("Python") #ctrl+a 全选输入框的内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a') time.sleep(2) #ctrl+x 剪切输入框的内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x') time.sleep(2) #ctrl+v 粘贴内容到输入框
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'v') time.sleep(2) #经过回车键来代替单击操做
driver.find_element_by_id("su").send_keys(Keys.ENTER) time.sleep(5) driver.quit()

除了上面介绍的键盘操做和组合键之外,还有一些其余经常使用的非组合键键盘操做,其实咱们上面实例中已经介绍过一些了。

回车键 Keys.ENTER

删除键 Keys.BACK_SPACE

空格键 Keys.SPACE

制表键 Keys.TAB

回退键 Keys.ESCAPE

刷新键 Keys.F5

相关文章
相关标签/搜索