Selenium鼠标与键盘事件常用操作方法示例


Posted in Python onAugust 13, 2018

本文实例讲述了Selenium鼠标与键盘事件常用操作方法。分享给大家供大家参考,具体如下:

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

在之前的《Selenium元素的常用操作方法》中有讲到元素的一些常用方法,接下来记录一下元素的鼠标与键盘事件

鼠标事件

在WebDriver中,将这些关于鼠标操作的方法封装在ActionChains类提供。ActionChains类提供了鼠标操作的常用方法:

  • perform():执行所有ActionChains存储的行为
  • context_click():右击
  • double_click():双击
  • drag_and_drop():拖动
  • move_to_element():悬停

下面需要操作浏览器实现下面这样的一个操作,即使鼠标悬停:

Selenium鼠标与键盘事件常用操作方法示例

代码如下:

from selenium.webdriver import Chrome
from selenium.webdriver.common.action_chains import ActionChains
driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get("https://www.baidu.com/")
element = driver.find_element_by_link_text("设置")
ActionChains(driver).move_to_element(element).perform()

键盘事件

Keys类提供了几乎键盘上的所有按键的方法,在前面的博文中有了解到,send_keys()可以用来模拟键盘输入的操作,除此之外,我们还可以用Keys来模拟键盘上的按键,或者组合键,如Ctrl + CCtrl + V等等。

from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys
driver = Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get("https://www.baidu.com/")

模拟键盘输入“python”:

driver.find_element_by_id("kw").send_keys("python.")

删除最后一个字符:

driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)

模拟键盘输入一个空格:

driver.find_element_by_id("kw").send_keys(Keys.SPACE)

模拟键盘输入“教程”:

driver.find_element_by_id("kw").send_keys("教程")

输入框全选:

driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"a")

剪切:

driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"x")

粘贴:

driver.find_element_by_id("kw").send_keys(Keys.CONTROL,"v")

回车:

driver.find_element_by_id("kw").send_keys(Keys.ENTER)

下面介绍几个常用的键盘操作:

  • Keys.BACK_SPACE:删除键
  • Keys.SPACE:空格键
  • Keys.TAB:Tab键
  • Keys.ESCAPE:回退键
  • Keys.ENTER:回车键
  • Keys.CONTROL,”a”:组合键,Ctrl + A
  • Keys.CONTROL,”x”:组合键,Ctrl + X
  • Keys.CONTROL,”v”:组合键,Ctrl + V
  • Keys.CONTROL,”c”:组合键,Ctrl + C
  • Keys.F1:F1键
  • Keys.F12:F12键

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python决策树之基于信息增益的特征选择示例
Jun 25 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
简单了解django缓存方式及配置
Jul 19 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
python定时截屏实现
Nov 02 Python
一篇文章教你用python画动态爱心表白
Nov 22 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
Python 阶乘详解
Oct 05 Python
python删除字符串中指定字符的方法
Aug 13 #Python
Django contenttypes 框架详解(小结)
Aug 13 #Python
Python中的Numpy矩阵操作
Aug 12 #Python
浅谈python之新式类
Aug 12 #Python
详解Django中类视图使用装饰器的方式
Aug 12 #Python
python中pip的安装与使用教程
Aug 10 #Python
python3判断url链接是否为404的方法
Aug 10 #Python
You might like
php模板中出现空行解决方法
2011/03/08 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
jquery.flot.js简单绘制折线图用法示例
2017/03/13 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
python采集百度百科的方法
2015/06/05 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
python中Mako库实例用法
2020/12/31 Python
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
细节决定成败演讲稿
2014/05/12 职场文书
小学数学课题方案
2014/06/15 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
房屋维修协议书范本
2014/09/25 职场文书
2015年元旦标语大全
2014/12/09 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
初三英语教学反思
2016/02/15 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers