web自动化系列-selenium 的鼠标操作(十)

devtools/2024/9/25 23:25:43/

对于鼠标操作 ,我们可以通过click()方法进行点击操作 ,但是有些特殊场景下的操作 ,click()是无法完成的 ,比如 :我想进行鼠标悬停 、想进行鼠标拖拽 ,怎么办 ?

这个时候你用click()是无法完成的 ,为此selenium提供这样一个类 ,专门用于进行鼠标 操作 ,这个类叫ActionChains .

1.ActionChains介绍

 

python"># 鼠标操作
"""
说明 : 主要针对鼠标的一些特殊操作 ,比如 :右键 ,悬停 、拖拽, 双击
导入 :from selenium.webdriver.common.action_chains impot ActionChains
功能(方法) :右键 :content_click(elem)         ,elem代表元素对象悬停 : move_to_element(elem)拖拽 : drag_and_drop(source,target)  source代表源 ,target代表目的地双击 : double_click(elem)执行 :perform()
说明 :进行鼠标操作后,必须要调用perform()执行方法才能真正的操作 ,否则鼠标是不会实现操作的。操作步骤:
1. 导包 :from selenium.webdriver.common.action_chains impot ActionChains
2. 创建对象 : action = ActionChains(driver)  ,其中这个类的参数为driver对象 
3. 调用功能的方法  action.content_click(elem)  ,其中elem是要操作的元素
4.调用执行方法  : action.perform()

2.具体案例

需求:通过selenium完成对tpshop的注册操作,具体如下 :

  1. 在首页的登录按钮上进行鼠标右击

  2. 将鼠标悬停在家用电器上

代码示例:  

python">from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains# 1. 创建浏览器对象
driver = webdriver.Chrome()
driver.maximize_window()# 2. 输入地址 :http://localhost
driver.get("http://localhost")# 初始化对象
action = ActionChains(driver)time.sleep(1)
# 执行操作 :鼠标右键
login_elem = driver.find_element_by_link_text("登录")
action.context_click(login_elem)# 执行上面的操作
action.perform()time.sleep(2)# 执行操作 :悬停
elem = driver.find_element_by_css_selector("a[title='家用电器']")
action.move_to_element(elem)
action.perform()


http://www.ppmy.cn/devtools/6074.html

相关文章

经济学人早操练(1)

hello大家好,周末给大家奉献一波“大”的。2024年4月13日经济学人Leader板块的文章,题目是《The next housing disaster》,当时看到这个题目的时候也是吓得一蹦啊,啥?我们的房子还有灾难,球球啊&#xff0c…

K8s的亲和、反亲和、污点、容忍

1 亲和与反亲和 亲和性的原理其实很简单,主要利用label标签结合nodeSelector选择器来实现 1.1 Pod和Node 从pod出发,可以分成亲和性和反亲和性,分别对应podAffinity和podAntiAffinity。从node出发,也可以分成亲和性和反亲和性&…

06 MapStream递归

Collections(集合工具类) 可变参数 就是一种特殊形参,定义在方法、构造器的形参列表里,定义格式是:方法名(数据类型… 形参名称){ } 可变参数的特点和好处 **特点:**可以不传数据给它;可以传一个或者同时传多个数据给…

深度学习基础——卷积神经网络的基础模块

深度学习基础——卷积神经网络的基础模块 卷积神经网络(Convolutional Neural Networks,CNN)是深度学习中一种非常重要的神经网络结构,它在图像识别、图像分类、目标检测等领域取得了巨大成功。本文将介绍卷积神经网络的几个基础…

Java+springboot开发的医院智能导诊服务系统源码 自动兼容小程序与H5版本

智能导诊系统 一、什么是智慧导诊系统? 智慧导诊系统是一种医院使用的引导患者自助就诊挂号、精准推荐科室、引导患者挂号就诊的系统。该系统结合医院挂号及就诊的HIS系统,为患者带来全流程的信息指引提醒,可以在全院区构建一个精细化、移动…

微信小程序前端获取OpenID和session_key

微信小程序前端获取OpenID和session_key code2Session: https://api.weixin.qq.com/sns/jscode2session?appidAPPID&secretSECRET&js_codeJSCODE&grant_typeauthorization_code wx.login({success: (res) > {console.log(res.code) //拿到codeuni.request({u…

为什么Redis使用单线程 性能会优于多线程?

前言 在计算机领域,性能一直都是一个关键的话题。无论是应用开发还是系统优化,我们都需要关注如何在有限的资源下,实现最大程度的性能提升。Redis,作为一款高性能的开源内存数据库,因其出色的单线程性能而备受瞩目。那…

使用python-can和cantools实现arxml报文解析、发送和接收的完整指南

文章目录 背景一、硬件支持二、环境准备1、python解释器安装2、python库安装 三、 收发案例四、 方法拓展1、canoe硬件调用2、回调函数介绍 结论 背景 在汽车行业中,CAN (Controller Area Network) 总线是用于车辆内部通信的关键技术。arxml文件是一种用于描述CAN消…