Selenium Python 中的动作链

Selenium 是一个用于自动化的独立的基于 Web 的工具。 它是任何人都可以使用的开源工具。

与Python语言结合使用该工具进行测试。 操作链是 Selenium 的基本组成部分,提供了一种管理低级交互的方法,例如按键、鼠标移动、鼠标按钮操作以及与上下文菜单的交互。

本篇文章介绍如何使用 Python 在 Selenium 中实现操作链。

当需要自动化高级脚本(其中我们需要单击或拖动任何元素)时,我们通常使用操作链。

动作链对象用于在 Python 中实现动作链。 动作链对象可以将所有动作存储在队列中,队列通过调用 perform() 函数来执行所有存储的操作。


如何在 Selenium Python 中创建一个简单的动作链对象

可以通过导入必要的模块并在 Python 代码中传递一些值来创建简单的 Action Chain 对象。

以下代码创建一个简单的操作链对象。

python 复制代码
from selenium import webdriver #webdriver is imported from selenium

from selenium.webdriver.common.action_chains import ActionChains # ActionChains is imported from webdriver

driver = webdriver.Firefox() # a webdriver object is then created

action = ActionChains(driver) # An action chain object is finally created with the driver
  1. Action Chain 类首先从 selenium.webdriver 模块导入。
  2. 然后定义一个驱动程序。
  3. 然后,该驱动程序作为关键参数传递给操作链对象。
  4. 操作链对象已创建并准备好执行任何可行的操作。
    除了通用用途之外,动作链还可以用于链或队列模式。

在 Selenium Python 中实现动作链

为了更好地解释这一点,让我们以网站 https://www.jiyik.com/ 为例,并在 Python 代码中做一些实验。

下面的示例代码首先运行网站 https://www.jiyik.com/,然后单击标题中的 迹忆客 按钮,因此浏览器会将我们重定向到 https://www.jiyik.com/ 网站本身的教程/链接。

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get("https://www.jiyik.com/")
clicker1 = driver.find_element_by_link_text("网络")
action = ActionChains(driver)
action.click(on_element = clicker1)
action.perform()

该代码首先运行并打开网站的主页 https://www.jiyik.com/

然后,根据上述代码中的操作,我们将自动重定向到 https://www.jiyik.com/tm/xwzj/network/ 网页。

  1. Action Chain 类首先从 selenium.webdriver 模块导入。
  2. 然后定义一个驱动程序,该驱动程序是网站 https://www.jiyik.com/。 为此,我们使用 get() 函数。
  3. 然后,我们定义一个元素 clicker1,即网站标题中的 TUTORIALS 按钮。
  4. 该驱动程序作为关键参数传递给操作链对象。
  5. 然后,我们利用 action.click() 函数并将先前定义的 clicker1 元素作为其参数传递。
  6. 然后我们执行perform()函数,以便可以进行代码中定义的操作。

在本文的这一部分中,我们举了一个在 Python 中使用 Selenium 中的操作链的现实示例。

然而,仅仅在 Selenium 中实现一个动作链是不够的; 我们还需要知道创建动作链对象后执行的动作链方法。 我们在下面为您描述了一些重要的内容。

  1. click - 单击元素的方法。
  2. click_and_hold - 在给定元素上按住鼠标左键的方法。
  3. double_click - 双击元素的方法。
  4. Drag_and_drop - 将 LMB 放在元素上,将其拖动到目标站点,然后释放它。
  5. move_to_element - 鼠标移动到元素的中心。
  6. perform - 存储在操作链对象中的所有操作都使用此方法执行。
  7. pause - 所有输入都暂停给定的持续时间。 持续时间以秒为单位。
  8. release - 如果按住鼠标按钮,则会释放它。
相关推荐
多米Domi01139 分钟前
0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向
jvm·数据结构·python·算法·leetcode
人工智能训练6 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming1686 小时前
python性能优化方案研究
python·性能优化
码云数智-大飞7 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
biuyyyxxx8 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
极客数模9 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
小鸡吃米…10 小时前
机器学习中的代价函数
人工智能·python·机器学习
Li emily11 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
m0_5613596711 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
Ulyanov11 小时前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲