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

对于鼠标操作 ,我们可以通过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()
相关推荐
Tbisnic10 分钟前
从链式法则到ReLU:梯度消失的数学本质与工程解决方案
python·深度学习·大模型·激活函数·梯度消失
csg110721 分钟前
PIC单片机防破解:从硬件到软件的全面防护
单片机·嵌入式硬件·物联网·自动化
想会飞的蒲公英33 分钟前
一个 PyTorch 模型训练的完整流程
人工智能·pytorch·python
c_lb72881 小时前
最新AI量化练习,小策略更适合练流程感
人工智能·python
金智维科技官方1 小时前
AI驱动的应付账款自动化,落地时要拆解哪些流程?
运维·人工智能·自动化
电化学仪器白超1 小时前
低阻域 ADC 与参考源选型理论分析
人工智能·python·单片机·嵌入式硬件·自动化
AI科技星1 小时前
《01无穷全域信息场论:算子G与宇宙本体高维完备公理大典》
人工智能·python·算法·金融·乖乖数学·全域数学
小Q蒙蒙2 小时前
基于AI大模型,将自然语言需求自动转化为结构化测试用例
人工智能·python·ai·测试用例
2601_962341303 小时前
计算机毕业设计之jsp考研在线复习平台
java·大数据·开发语言·hadoop·python·考研·课程设计
云烟成雨TD3 小时前
LangFlow 1.x 系列【7】工作流创建与部署指南
人工智能·python·agent