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

本文介绍了Selenium3结合Python3进行自动化测试时的鼠标和键盘事件操作,包括鼠标的各种点击、拖拽、移动等动作,以及键盘的按键输入、组合键模拟等功能。通过实例代码展示了如何使用ActionChains类和Keys模块来实现这些操作。
摘要由CSDN通过智能技术生成

一、鼠标事件

在 webdriver 中, 将这些关于鼠标操作的方法封装在 actionchains 类提供。

actionchains 类提供了鼠标操作的常用方法。

actionchains 类的成员源码如下图所示:

b75418bfee277a17fcbd2cdc0b359ffb.png

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

分类函数名描述

鼠标操作

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)

在指定的时间内暂定所有的输入

实例代码如下:

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()

二、键盘事件

keys()类提供了键盘上几乎所有按键的方法。 前面了解到, send_keys()方法可以用来模拟键盘输入,

除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 ctrl+a、 ctrl+c 等。

selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入

from selenium.webdriver.common.keys import keys即可,然后就可以来模拟键盘操作。

#导入keys 模块,然后我们看看keys 模块定义了那些按键

from selenium.webdriver.common.keys import keys

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

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值