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 相关文章推荐
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
Python实现的简单dns查询功能示例
May 24 Python
python 定义给定初值或长度的list方法
Jun 23 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python  创建一个保留重复值的列表的补码
Oct 15 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
Python实现FLV视频拼接功能
Jan 21 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
浅析Python 多行匹配模式
Jul 24 Python
Pytest allure 命令行参数的使用
Apr 18 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
2009/02/17 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
js jquery数组介绍
2012/07/15 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
详解Python中的__init__和__new__
2014/03/12 Python
Python中os和shutil模块实用方法集锦
2014/05/13 Python
详解Python中使用base64模块来处理base64编码的方法
2016/07/01 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
中科软测试工程师面试题
2012/06/16 面试题
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书