python+selenium 鼠标事件操作方法


Posted in Python onAugust 24, 2019

一、前言

除了可以使用 click( ) 来模拟鼠标的单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键、双击、悬停、拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封装在 ActionChains 类中。

ActionChains 类提供了鼠标操作的常用方法:

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

二、详细使用

1.鼠标右击操作

from selenium import webdriver
#引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
 
driver = webdriver.Chrome()
driver.get("url")
#......
#定位到需要右击的元素
right_click = driver.find_element_by_id("id")
#对元素进行右击操作
ActionChains(driver).context_click(right_click).perform()
#......

ActionChains(driver):调用ActionChains类,将浏览器驱动driver作为参数传入;

perform():执行所有ActionChains中存储的行为,可以理解成是对整个操作的提交动作;

2.鼠标悬停

move_to_element()方法可以模拟鼠标悬停的动作,其用法与context_click()相同;

from selenium import webdriver
#引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
 
driver = webdriver.Chrome()
driver.get("url")
#......
#定位到需要悬停的元素
above = driver.find_element_by_id("id")
#对元素进行右击操作
ActionChains(driver).move_to_element(above).perform()
#......

3.鼠标双击

double_click() 方法用于模拟鼠标双击操作;

from selenium import webdriver
#引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
 
driver = webdriver.Chrome()
driver.get("url")
#......
#定位到需要双击的元素
double_click = driver.find_element_by_id("id")
#对元素进行右击操作
ActionChains(driver).double_click(double_click).perform()
#......

4.鼠标拖动操作

drag_and_drop(source,target) 在源位置元素上按住鼠标左键,然后移动到目标元素上释放。

source:鼠标拖动的源元素

target:鼠标释放的目标元素

from selenium import webdriver
#引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
 
driver = webdriver.Chrome()
driver.get("url")
#......
#定位元素的源位置
source = driver.find_element_by_id("id")
#定位元素要移到到的目标位置
target = driver.find_element_by_id("id")
#对元素进行拖动操作
ActionChains(driver).drag_and_drop(source,target).perform()
#......

以上这篇python+selenium 鼠标事件操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python模块学习 filecmp 文件比较
Aug 27 Python
Python中无限元素列表的实现方法
Aug 18 Python
Python文件读取的3种方法及路径转义
Jun 21 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
Python生成器的使用方法和示例代码
Mar 04 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
使用遗传算法求二元函数的最小值
Feb 11 Python
Scrapy框架介绍之Puppeteer渲染的使用
Jun 19 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
Dec 18 Python
Python中过滤字符串列表的方法
Dec 22 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
python+selenium select下拉选择框定位处理方法
Aug 24 #Python
Python封装成可带参数的EXE安装包实例
Aug 24 #Python
python识别文字(基于tesseract)代码实例
Aug 24 #Python
python图片二值化提高识别率代码实例
Aug 24 #Python
关于Python形参打包与解包小技巧分享
Aug 24 #Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 #Python
对python中的装包与解包实例详解
Aug 24 #Python
You might like
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
Three.js学习之几何形状
2016/08/01 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python3基础之基本数据类型概述
2014/08/13 Python
python文件的md5加密方法
2016/04/06 Python
python 换位密码算法的实例详解
2017/07/19 Python
教你学会使用Python正则表达式
2017/09/07 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
服务之星事迹材料
2014/05/03 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
营业用房租赁协议书
2014/11/26 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
关于分班的感言
2015/08/04 职场文书
2016同学毕业寄语大全
2015/12/04 职场文书
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL