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 - 如果按住鼠标按钮,则会释放它。
相关推荐
涛声依旧-底层原理研究所13 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
csdn_aspnet13 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
fantasy_arch14 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
熊猫_豆豆14 小时前
广义相对论水星近日点进动完整详细数学推导
python·天体·广义相对论
web3.088899914 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python
AI算法沐枫14 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归
X1A0RAN15 小时前
解决Pycharm中部分文件或文件夹被隐藏不展示问题
ide·python·pycharm
MomentYY16 小时前
第 3 篇:让 Agent 学会分工,LangGraph 构建多 Agent系统
人工智能·python·agent
程序员Jelena16 小时前
Python 代码是什么?—— 从字节到执行的完整解析
python
测试员周周16 小时前
【Appium 系列】第13节-混合测试执行器 — API + UI 的协同执行
开发语言·人工智能·python·功能测试·ui·appium·pytest