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 的 Socket 编程
Mar 24 Python
python正则表达式match和search用法实例
Mar 26 Python
Python中基础的socket编程实战攻略
Jun 01 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
TensorFlow的权值更新方法
Jun 14 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
Selenium alert 弹窗处理的示例代码
Aug 06 Python
利用Python过滤相似文本的简单方法示例
Feb 03 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和ACCESS写聊天室(十)
2006/10/09 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
php自定文件保存session的方法
2014/12/10 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
PHP学习笔记之session
2018/05/06 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
深入理解js中this的用法
2016/05/28 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
2018/08/09 jQuery
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
python字符串连接的N种方式总结
2014/09/17 Python
Python标准库之Sys模块使用详解
2015/05/23 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
python属于软件吗
2020/06/18 Python
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
酒店开业庆典策划方案
2014/05/28 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
学生检讨书怎么写
2014/10/09 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
终止劳动合同通知书
2015/04/16 职场文书
JS class语法糖的深入剖析
2022/07/07 Javascript