selenium自动化鼠标和键盘操作

文章目录


前言

在 Selenium 中,ActionChains 是一个用于自动化鼠标和键盘操作的高级接口。它允许你执行复杂的操作,比如悬停、拖拽、点击等,这些操作通常需要一系列低级事件来完成。通过 ActionChains,你可以更方便地模拟用户与网页元素之间的交互。


提示:以下是本篇文章正文内容,下面案例可供参考

一、主要用途

  • 执行鼠标操作:如右键点击、双击、鼠标悬停(hover)、拖放等。
  • 键盘操作:如按- 键按下、释放等。
  • 组合操作:可以将多个操作组合在一起形成一个动作序列,然后一次性执行。

二、基本使用方法

导入 ActionChains:

首先,你需要从 selenium 的模块中导入 ActionChains 类。

python 复制代码
from selenium.webdriver import ActionChains

初始化 ActionChains 对象:

创建 ActionChains 对象时,需要传入 WebDriver 实例作为参数。

python 复制代码
actions = ActionChains(driver)

添加操作:

你可以通过调用 ActionChains 对象的方法来添加不同的操作到动作链中。例如,移动到某个元素上:

python 复制代码
element = driver.find_element(By.ID, "element_id")
actions.move_to_element(element)

执行动作:

调用 perform() 方法来执行所有已添加到动作链中的操作。

python 复制代码
actions.perform()

-------------------------------------------------------✂--------------------------------------------------------------------------------------------

示例

这是一个简单的例子,演示如何使用 ActionChains 来进行鼠标悬停操作:

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys # 键盘模块

driver = webdriver.Chrome()
driver.get("http://www.example.com")

# 定位到想要操作的元素
element = driver.find_element(By.ID, "id_of_element")

# 使用ActionChains创建动作并执行
actions = ActionChains(driver)
# 鼠标悬停
actions.move_to_element(element).perform()

# 右键操作
ActionChains(driver).context_click(element).perform()

# 单击操作
ActionChains(driver).click(element).perform()

# 双击
ActionChains(driver).double_click(element).perform()


# delete
element.send_keys(Keys.DELETE)

# 退格键
element.send_keys(Keys.BACKSPACE)

# 全选 ctrl+A
element.send_keys(Keys.CONTROL,"a")

# 复制 ctrl+C 其他的ctrl+X 和 ctrl+V类似
element.send_keys(Keys.CONTROL,"c")

注意,在实际使用时,可能需要根据具体情况调整选择器以及操作类型。此外,Selenium 和浏览器驱动程序需要保持更新,以确保兼容性和功能完整性。


总结

结合这些事件和元素定位可以完成更多的复杂的web交互完成。

相关推荐
永霖光电_UVLED5 小时前
KAIST 团队研发出高效、超高分辨率的红色微米发光二极管(Micro-LED)显示器
计算机外设
生而为虫10 小时前
Selenium打开网页时保持登陆状态
selenium·测试工具
Yeats_Liao10 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
好好学习天天向上~~11 小时前
6_Linux学习总结_自动化构建
linux·学习·自动化
骆驼爱记录13 小时前
Word样式检查器使用指南
自动化·word·excel·wps·新人首发
XiaoMu_00114 小时前
自动化漏洞扫描与预警平台
运维·网络·自动化
生而为虫15 小时前
[Windows] 【浏览器自动化精灵V1.0】用Excel表格控制浏览器的自动化
运维·自动化
淡忘_cx16 小时前
使用Jenkins自动化部署vue项目(2.528.2版本)
vue.js·自动化·jenkins
风指引着方向16 小时前
昇腾 AI 开发生产力工具:CANN CLI 的高级使用与自动化脚本编写
运维·人工智能·自动化
掌心向暖RPA自动化16 小时前
影刀RPA如何在网页和桌面软件中实现自动滚动长截图?最好同时支持横向滚动纵向滚动的?
经验分享·自动化·影刀rpa·长截图