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/ironpython:从入门到精通
Oct 02 Python
python使用多线程不断刷新网页的方法
Mar 31 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 Python
对python实现模板生成脚本的方法详解
Jan 30 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
详解python with 上下文管理器
Sep 02 Python
python raise的基本使用
Sep 10 Python
Python实现天气查询软件
Jun 07 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 设计模式之观察者模式介绍
2012/02/22 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
用htc组件制作windows选项卡
2007/01/13 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
Javascript实现简易天数计算器
2020/05/18 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python中random模块用法实例分析
2015/05/19 Python
python实现网站的模拟登录
2016/01/04 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
Pytorch的mean和std调查实例
2020/01/02 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
python实现双人五子棋(终端版)
2020/12/30 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
会计电算化大学生职业规划书
2014/02/05 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
Python爬虫基础讲解之请求
2021/05/13 Python