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 - 如果按住鼠标按钮,则会释放它。
相关推荐
一只小菜鸡1 分钟前
python+django5.1+docker实现CICD自动化部署springboot 项目前后端分离vue-element
python·docker·自动化
为祖国添砖爪哇5 分钟前
【自动化Selenium】Python 网页自动化测试脚本(上)
python·selenium·自动化
碧海蓝天202230 分钟前
接上一主题,C++14中如何设计类似于std::any,使集合在C++中与Python一样支持任意数据?
开发语言·c++·python
IRevers2 小时前
使用Python和Pybind11调用C++程序(CMake编译)
开发语言·c++·人工智能·python·深度学习
cdut_suye2 小时前
C++11新特性探索:Lambda表达式与函数包装器的实用指南
开发语言·数据库·c++·人工智能·python·机器学习·华为
weixin_543662862 小时前
BERT的中文问答系统36-1
人工智能·python·bert
weixin_431470862 小时前
人名分类器(nlp)
人工智能·pytorch·python·深度学习·自然语言处理
努力更新中2 小时前
Python浪漫之画一个音符♪
开发语言·python
泰山小张只吃荷园2 小时前
期末Python复习-输入输出
java·前端·spring boot·python·spring cloud·docker·容器
凤枭香3 小时前
Python Selenium介绍(二)
开发语言·爬虫·python·selenium