drag_and_drop - Action Chains in Selenium Python
Last Updated :
15 May, 2020
Improve
Selenium’s Python Module is built to perform automated testing with Python. ActionChains are a way to automate low-level interactions such as mouse movements, mouse button actions, keypress, and context menu interactions. This is useful for doing more complex actions like hover over and drag and drop. Action chain methods are used by advanced scripts where we need to drag an element, click an element, double click, etc.
This article revolves around
Python3
To find an element one needs to use one of the locating strategies, For example,
Python3
Now one can use drag_and_drop method as an Action chain as below -
Python3
Output -
drag_and_drop
method on Action Chains in Python Selenium. drag_and_drop method holds down the left mouse button on the source element, then moves to the target element and releases the mouse button.
Syntax -
drag_and_drop(source, target)Args -
source
: The element to mouse down.target
: The element to mouse up.
<input type ="text" name ="passwd" id ="passwd-id" />
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
drag_and_drop(source, target)
How to use drag_and_drop Action Chain method in Selenium Python ?
To demonstrate,drag_and_drop
method of Action Chains in Selenium Python. Let' s visit https://www.geeksforgeeks.org/ and operate on an element.
Program -
# import webdriver
from selenium import webdriver
# import Action chains
from selenium.webdriver.common.action_chains import ActionChains
# create webdriver object
driver = webdriver.Firefox()
# get geeksforgeeks.org
driver.get("https://www.geeksforgeeks.org/")
# get source element
source_element = driver.find_element_by_link_text("Courses")
# get target element
target_element = driver.find_element_by_link_text("Hard")
# create action chain object
action = ActionChains(driver)
# drag and drop the item
action.drag_and_drop(source_element, target_element)
# perform the operation
action.perform()
