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

相关推荐
小小测试开发10 小时前
Playwright进阶:录制视频与追踪功能,让自动化过程“看得见、可分析”
自动化·音视频
YJlio11 小时前
自动化实践(7.25):把 PsTools 接入 PowerShell / 批处理 / Ansible
microsoft·自动化·ansible
深蓝电商API12 小时前
动态资源加载:不用Selenium,如何高效抓取Ajax和SPA网站?
selenium·测试工具·ajax
星尘库19 小时前
抖音自动化-实现给特定用户发私信
前端·javascript·自动化
Mr_Xuhhh19 小时前
GUI自动化测试--自动化简单示例
运维·服务器·自动化
研究司马懿1 天前
【ETCD】ETCD——confd配置管理
数据库·golang·自动化·运维开发·etcd·argocd·gitops
2501_915921431 天前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone
newxtc1 天前
【湖北政务服务网-注册_登录安全分析报告】
人工智能·selenium·测试工具·安全·政务