如何在 Selenium 中使用 Python 执行拖放操作?

selenium web driverautomation testingsoftware testing

我们可以借助 Action Chains 类在 Selenium 中执行拖放操作。这些类通常用于自动化交互,例如上下文菜单点击、鼠标按钮操作、按键和鼠标移动。

这些类型的操作主要常见于复杂的场景,例如拖放和悬停在页面上的元素上。Action Chains 类的方法被高级脚本所利用。我们可以借助 Selenium 中的 Action Chains 来操作 DOM。

Action Chain 对象以队列的形式实现 ActionChains,然后执行 perform() 方法。调用 perform() 方法后,动作链上的所有操作都将执行。

创建动作链对象的方法如下:

  • 首先,我们需要导入动作链类,然后将驱动程序作为参数传递给它。

  • 现在,所有动作链的操作都可以借助此对象完成。

语法

创建动作链对象的语法 -

from selenium import webdriver

# 导入动作链

from selenium.webdriver import ActionChains

# 创建 webdriver 对象

driver = webdriver.Firefox()

# 创建动作链对象

action = ActionChains(driver)

创建动作链对象后,我们可以像执行排队链一样,逐个执行多个操作。

drag_and_drop() - 此方法执行的操作是:按住鼠标左键选中源元素,然后移动到目标元素,最后松开鼠标左键。

语法

drag_and_drop(args1, args2)

其中,args1 是执行鼠标按下操作的元素。

args2 是执行鼠标抬起操作的元素。


#source
source = driver.find_element_by_link_text("Tutorialspoint")

#target
target = driver.find_element_by_link_text("Selenium")

#action chain object
action = ActionChains(driver)

# drag and drop operation
action.drag_and_drop(source, target)

示例

拖放操作的代码实现。

from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
#浏览器暴露可执行文件

#通过 Selenium 测试,我们将调用该可执行文件,然后

#调用实际的浏览器

driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")

#最大化浏览器窗口

driver.maximize_window()

#使用 get 方法启动 URL

driver.get("https://jqueryui.com/droppable/")

#刷新浏览器

driver.refresh()

#识别源元素和目标元素

source = driver.find_element_by_id("draggable");

target = driver.find_element_by_id("droppable");

#创建操作链对象

action = ActionChains(driver)

#执行拖放操作
action.drag_and_drop(source, target).perform()
driver.close()

相关文章