Python爬虫之Selenium鼠标事件的实现


Posted in Python onDecember 04, 2020

一、常用方法

函数名 说明
click(on_element=None) 点击鼠标右键
click_and_hold(on_element=None) 点击鼠标左键,不松开
release(on_element=None) 在某个元素位置松开鼠标左键
context_click(on_element=None) 点击鼠标右键
double_click(on_element=None) 双击鼠标左键
drag_and_drop(source, target) 拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) 拽到某个坐标然后松开
move_by_offset(xoffset, yoffset) 鼠标从当前位置移动到某个坐标
move_to_element(to_element) 鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) 移动到距某个元素(左上角坐标)多少距离的位置
perform() 执行所有 ActionChains 中存储的行为,相当于提交

二、代码示例

选几个经常使用的测试一下,其他事件语法相同

from selenium import webdriver
import time
from selenium.webdriver import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.cn")

#定位到需要右击的元素,然后执行鼠标右击操作(例:对新闻标签进行右击)
context_click_location = driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[3]/a[1]')
ActionChains(driver).context_click(context_click_location).perform()

time.sleep(2) #睡两秒,看一下效果

# 定位到需要悬停的元素,然后执行鼠标悬停操作(例:对设置标签进行悬停)
move_to_element_location = driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[3]/a[8]")
ActionChains(driver).move_to_element(move_to_element_location).perform()

time.sleep(2) #睡两秒,看一下效果

# 鼠标悬浮后点击高级搜索
driver.find_element_by_xpath("/html/body/div[1]/div[6]/a[2]").click()

time.sleep(2) #睡两秒,看一下效果

driver.quit() #关闭所有标签页

由于百度没有可拖动的元素,所以在菜鸟上找了一个网址进行测试,由于菜鸟上的网页是使用frame内嵌的,所以添加了个处理frame的过程,关于frame的处理请参考我的另一篇文章:Python爬虫 - Selenium(8)frame/iframe表单嵌套页面

from selenium import webdriver
from selenium.webdriver import ActionChains
import time

driver = webdriver.Chrome()
driver.get("https://www.runoob.com/try/try.php?filename=jqueryui-example-draggable-scroll")
# 切换到目标元素所在的frame
driver.switch_to.frame("iframeResult")

# 确定拖拽目标的起点和终点,完成拖拽
start_location = driver.find_element_by_id("draggable")
end_location = driver.find_element_by_id("draggable3")
ActionChains(driver).drag_and_drop(start_location,end_location).perform()

time.sleep(2) #睡两秒,看一下效果

driver.quit() #关闭所有标签页

Selenium文集传送门:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别

到此这篇关于Python爬虫之Selenium鼠标事件的实现的文章就介绍到这了,更多相关Selenium 鼠标事件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用Python实现通过哈希算法检测图片重复的教程
Apr 02 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
Python3 操作符重载方法示例
Nov 23 Python
Python标准库inspect的具体使用方法
Dec 06 Python
python实现简单遗传算法
Mar 19 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
24式加速你的Python(小结)
Jun 13 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
pytorch 如何使用amp进行混合精度训练
May 24 Python
Selenium 配置启动项参数的方法
Dec 04 #Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 #Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 #Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 #Python
Selenium 安装和简单使用的实现
Dec 04 #Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 #Python
Python实现中英文全文搜索的示例
Dec 04 #Python
You might like
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
怎么清空javascript数组
2013/05/11 Javascript
Angularjs 基础入门
2014/12/26 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
JS 事件机制完整示例分析
2020/01/15 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
django初始化数据库的实例
2018/05/27 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
python async with和async for的使用
2019/06/20 Python
安装PyInstaller失败问题解决
2019/12/14 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
师范毕业生自我鉴定
2014/01/15 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书