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交互完成。

相关推荐
微硬创新38 分钟前
耐达讯自动化:16路4-20mA模拟信号,该怎样平稳接入PROFINET控制系统?
人工智能·物联网·网络协议·自动化·信息与通信
梦想的旅途21 小时前
企业微信API二次开发:接入 AI 大模型实现外部群智能问答
人工智能·自动化·二次开发·企业微信
lushanzheng3 小时前
2026年必应快排程序:基于 Selenium 自动化解决方案
selenium·测试工具·自动化
mengpp_1234563 小时前
物联网云平台可以离线使用吗?摒弃云端依赖,工业现场离线自动化解决方案
运维·物联网·自动化·华为云
xiaoxiangsiyan3 小时前
企业网络运维自动化与管理协议深度指南
linux·运维·服务器·网络·学习·自动化
HackTwoHub4 小时前
Fastjson1全版本(1.2.47→1.2.83 )漏洞利用3万字完整总结、绕过分析、探测、WAF 绕过与 Gadget 汇总
前端·javascript·人工智能·安全·ajax·网络安全·自动化
酷可达拉斯4 小时前
自动化运维-从零开始编写ansible剧本(二)
linux·运维·服务器·centos·自动化
Nomarsgo5 小时前
联控 Lionconit PTC-1006手持工业平板电脑在野外输电线路巡检中的应用方案
运维·科技·自动化·汽车·电脑
WA内核拾荒者14 小时前
WhatsApp 消息发送失败的重试策略与幂等性保证
自动化