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中的len()函数的使用
Apr 07 Python
python字典基本操作实例分析
Jul 11 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
深入解析神经网络从原理到实现
Jul 26 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
如何完美的建立一个python项目
Oct 09 Python
详解python的super()的作用和原理
Oct 29 Python
Python 中 Shutil 模块详情
Nov 11 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中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
vue注册组件的几种方式总结
2018/03/08 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
Python 面向对象 成员的访问约束
2008/12/23 Python
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
python logging 日志的级别调整方式
2020/02/21 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
.net面试题
2015/12/22 面试题
自荐书封面下载
2013/11/29 职场文书
职业技术学校毕业生推荐信
2013/12/03 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
表彰大会主持词
2014/03/26 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
先进个人申报材料
2014/12/30 职场文书
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS