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初学者 Anaconda入门使用指南完整版
Apr 05 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
python模块smtplib学习
May 22 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
在python 中实现运行多条shell命令
Jan 07 Python
python实现顺时针打印矩阵
Mar 02 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 Python
python 列表推导式使用详解
Aug 29 Python
Python tkinter常用操作代码实例
Jan 03 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
Apr 07 Python
用python制作个视频下载器
Feb 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 array_intersect()函数使用代码
2009/01/14 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
php 使用GD库为页面增加水印示例代码
2014/03/24 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
基于vue、react实现倒计时效果
2019/08/26 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python实现爬取图书封面
2018/07/05 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
python实现的自动发送消息功能详解
2019/08/15 Python
详解django中Template语言
2020/02/22 Python
python dict乱码如何解决
2020/06/07 Python
python之语音识别speech模块
2020/09/09 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
工商企业管理实习自我鉴定
2013/12/04 职场文书
扬州个园导游词
2015/02/06 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书