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  连接字符串(join %)
Sep 06 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
Python日志模块logging基本用法分析
Aug 23 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
Python Django实现layui风格+django分页功能的例子
Aug 29 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
Python 内存管理机制全面分析
Jan 16 Python
Python 文字识别
May 11 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数组(array)输出的三种形式详解
2013/06/05 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
javascript中length属性的探索
2011/07/31 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
python thread 并发且顺序运行示例
2009/04/09 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
入职担保书怎么写
2014/05/12 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
群众路线剖析材料
2014/09/30 职场文书
2014年收银工作总结
2014/11/13 职场文书
离婚协议书格式
2014/11/21 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技