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 获取进程pid号的方法
Mar 10 Python
python基础教程之常用运算符
Aug 29 Python
安装Python的web.py框架并从hello world开始编程
Apr 25 Python
python3实现短网址和数字相互转换的方法
Apr 28 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python画一个玫瑰和一个爱心
Aug 18 Python
python中map的基本用法示例
Sep 10 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
Python全栈之列表数据类型详解
Oct 01 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 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
PHP中文分词的简单实现代码分享
2011/07/17 PHP
PHP缓冲区用法总结
2016/02/14 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
如何在PHP中生成随机数
2020/06/04 PHP
Ext 今日学习总结
2010/09/19 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
python对日志进行处理的实例代码
2018/10/06 Python
Python 移动光标位置的方法
2019/01/20 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
Python高并发和多线程有什么关系
2020/11/14 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
护理学专业推荐信
2013/12/03 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
就业表自我评价分享
2014/02/06 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书