Selenium Python中的动作链

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

当与Python语言相结合时,这个工具被用来进行测试。动作链是Selenium的一个基本部分,它提供了一种管理低级交互的方法,如按键、鼠标移动、鼠标按钮动作以及与上下文菜单的交互。

本教程演示了如何用Python在Selenium中实现动作链。

当需要实现高级脚本的自动化时,我们通常会使用动作链,其中我们需要点击或拖动任何元素。

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

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

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

下面的代码创建了一个简单的Action Chain 对象。

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. 首先从selenium.webdriver 模块中导入Action Chain 类。
  2. 然后定义一个driver
  3. 然后将这个driver 作为关键参数传递给action chain 对象。
  4. action chain 对象被创建并准备好执行任何可行的操作。

除了通用的利用方式,动作链也可以用在连锁或队列模式中。

在Selenium Python中实现一个动作链

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

下面采取的示例代码首先运行网站https://www.delftstack.com/ ,然后点击标题中的TUTORIALS 按钮,由于这个原因,浏览器就会自行将我们重定向到网站的https://www.delftstack.com/tutorial/ 链接。

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get("https://www.delftstack.com/")
clicker1 = driver.find_element_by_link_text("TUTORIALS")
action = ActionChains(driver)
action.click(on_element = clicker1)
action.perform()

上述代码提供了以下输出:

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

Selenium Python中的动作链

然后,按照上述代码的操作,我们被自动重定向到https://www.delftstack.com/tutorials/ 网页。

Selenium Python中的动作链

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

在文章的这一部分,我们举了一个在Selenium中用Python使用动作链的真实例子。

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

  1. click – 点击一个元素的方法。
  2. click_and_hold – 在给定元素上按住鼠标左键的方法。
  3. double_click – 双击一个元素的方法。
  4. drag_and_drop – 在一个元素上按住LMB,把它拖到目标位置,然后释放它。
  5. move_to_element – 鼠标被移动到元素的中心。
  6. perform – 所有存储在action chain 对象中的动作都用这个方法执行。
  7. pause – 所有的输入都暂停了一个给定的时间。时间长度以秒为单位。
  8. release – 如果一个鼠标按钮被按住,它将释放它。