06-鼠标事件-ActionChains类

目录

1. 常用方法

2. 其他方法


1. 常用方法

  • perform(): 执行所有 ActionChains 中存储的行为
  • context_click(): 右键单击
  • double_click(): 双击鼠标左键
  • drag_and_drop(): 拖拽到某个元素然后松开
  • move_to_element(): 鼠标悬停
# -*-coding:utf-8一*-
# @Time:2021/1/13
# @Author: 大海

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 隐式等待,后面介绍
driver.implicitly_wait(10)
# 鼠标悬停在搜索设置按钮上
mouse = driver.find_element_by_link_text("设置")
# ActionChains类需将驱动driver作为参数传入
# perform() 执行move_to_element(mouse) 鼠标悬浮的动作
ActionChains(driver).move_to_element(mouse).perform()   

2. 其他方法

  • click(on_element=None) :单击鼠标左键
  • click_and_hold(on_element=None) :点击鼠标左键,不松开
  • drag_and_drop_by_offset(source, xoffset, yoffset) :拖拽到某个坐标然后松开
  • key_down(value, element=None) :按下某个键盘上的键
  • key_up(value, element=None) :松开某个键
  • move_by_offset(xoffset, yoffset) :鼠标从当前位置移动到某个坐标
  • move_to_element(to_element) :鼠标移动到某个元素
  • move_to_element_with_offset(to_element, xoffset, yoffset) :移动到距某个元素(左上角坐标)多少距离的位置
  • release(on_element=None) :在某个元素位置松开鼠标左键
  • send_keys(*keys_to_send) :发送某个键到当前焦点的元素
  • send_keys_to_element(element, *keys_to_send) :发送某个键到指定元素
### 关于 `ActionChains` #### 使用方法及实例 在 Selenium 中,`ActionChains` 用于模拟复杂的用户交互操作。这些操作可能涉及鼠标移动、点击、按键等行为。 创建 `ActionChains` 对象时需传入 WebDriver 实例作为参数: ```python from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() action = ActionChains(driver) ``` 通过该对象可调用多种方法来构建一系列动作序列,并最终执行它们。下面是一些常见用法及其对应的代码片段[^1]。 - **右键单击** 当需要实现右键菜单功能时,可以利用 `context_click()` 方法完成此操作: ```python element_to_right_click = driver.find_element_by_id('some-id') action.context_click(element_to_right_click).perform() ``` - **双击** 对于某些网页元素上的双击事件,则可通过 `double_click()` 来触发: ```python doublclickable_element = driver.find_element_by_name('dbl-click-me') action.double_click(doublclickable_element).perform() ``` - **拖拽并释放** 如果页面中有支持拖放的操作项,那么就可以借助 `drag_and_drop()` 或者更灵活的方式——先指定起始位置再设定目标位置来进行处理: ```python source_item = driver.find_element_by_class_name('draggable-item-source') target_area = driver.find_element_by_css_selector('.drop-target') # 方式一:直接使用 drag_and_drop 函数 action.drag_and_drop(source_item, target_area) # 方式二:分步定义动作链 action.click_and_hold(source_item)\ .move_to_element(target_area)\ .release().perform() ``` 以上仅展示了部分基础的功能;实际上还有更多高级特性等待探索,比如组合键输入(`key_down()/key_up()`)以及自定义指针运动轨迹等[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习de测试小白

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值