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
- 首先从
selenium.webdriver
模块中导入Action Chain
类。 - 然后定义一个
driver
。 - 然后将这个
driver
作为关键参数传递给action chain
对象。 -
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/
。
然后,按照上述代码的操作,我们被自动重定向到https://www.delftstack.com/tutorials/
网页。
-
Action Chain
类首先从selenium.webdriver
模块中导入。 - 然后定义一个
driver
,也就是网站https://www.delftstack.com/
。我们为此使用了get()
函数。 - 然后,我们定义一个元素
clicker1
,即网站头部的TUTORIALS
按钮。 - 这个
driver
,作为关键参数传递给action chain
对象。 - 然后,我们利用
action.click()
函数,并将先前定义的clicker1
元素作为其参数传递。 - 然后,我们执行
perform()
函数,这样就可以进行代码中定义的操作了。
在文章的这一部分,我们举了一个在Selenium中用Python使用动作链的真实例子。
然而,仅仅在Selenium中实现一个动作链是不够的;我们还需要知道在创建Action Chain
对象后执行的动作链方法。我们在下面为你描述了一些重要的内容。
-
click
– 点击一个元素的方法。 -
click_and_hold
– 在给定元素上按住鼠标左键的方法。 -
double_click
– 双击一个元素的方法。 -
drag_and_drop
– 在一个元素上按住LMB,把它拖到目标位置,然后释放它。 -
move_to_element
– 鼠标被移动到元素的中心。 -
perform
– 所有存储在action chain
对象中的动作都用这个方法执行。 -
pause
– 所有的输入都暂停了一个给定的时间。时间长度以秒为单位。 -
release
– 如果一个鼠标按钮被按住,它将释放它。