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, This article revolves around how to manipulate DOM using Action Chains in Selenium. We have covered all the methods with examples int detail.
ActionChains are implemented with the help of a action chain object which stores the actions in a queue and when perform() is called, performs the queued operations.
How to create an Action Chain Object ?
To create object of Action Chain, import ACtion chain class from docs and pass driver as the key argument. After this one can use this object to perform all the operations of action chains.
How to use Action Chains in Selenium ?
After one has created an object of Action chain, open a webpage, and perform various other methods using below syntax and examples. Action chains can be used in a chain pattern as below –
Or actions can be queued up one by one, then performed.:
Project Example –
Let’s try to implement action chains using https://www.geeksforgeeks.org/ and play around with various methods of Selenium Python.
Above code, first opens https://www.geeksforgeeks.org/ and then clicks on courses button in the header, which then redirects the browser to https://practice.geeksforgeeks.org/ automatically.
First driver opens https://www.geeksforgeeks.org/,
then redirects to https://practice.geeksforgeeks.org/
Action Chain Methods in Selenium Python
One can perform a huge number of operations using Action chains such as click, right-click, etc. Here is a list of important methods used in Action chains.
|click||Clicks an element.|
|click_and_hold||Holds down the left mouse button on an element.|
|context_click||Performs a context-click (right click) on an element.|
|double_click||Double-clicks an element.|
|drag_and_drop||Holds down the left mouse button on the source element, then moves to the target element and releases the mouse button.|
|drag_and_drop_by_offset||Holds down the left mouse button on the source element, then moves to the target offset and releases the mouse button.|
|key_down||Sends a key press only, without releasing it.|
|key_up||Releases a modifier key.|
|move_by_offset||Moving the mouse to an offset from current mouse position.|
|move_to_element||Moving the mouse to the middle of an element.|
|move_to_element_with_offset||Move the mouse by an offset of the specified element, Offsets are relative to the top-left corner of the element.|
|perform||Performs all stored actions.|
|pause||Pause all inputs for the specified duration in seconds|
|release||Releasing a held mouse button on an element.|
|reset_actions||Clears actions that are already stored locally and on the remote end|
|send_keys||Sends keys to current focused element.|
- click_and_hold - Action Chains in Selenium Python
- drag_and_drop - Action Chains in Selenium Python
- move_by_offset - Action Chains in Selenium Python
- context_click - Action Chains in Selenium Python
- pause method - Action Chains in Selenium Python
- click method - Action Chains in Selenium Python
- reset_actions method - Action Chains in Selenium Python
- key_down method - Action Chains in Selenium Python
- drag_and_drop_by_offset method - Action Chains in Selenium Python
- move_to_element_with_offset method - Action Chains in Selenium Python
- double_click method - Action Chains in Selenium Python
- release method - Action Chains in Selenium Python
- send_keys method - Action Chains in Selenium Python
- move_to_element method - Action Chains in Selenium Python
- key_up method - Action Chains in Selenium Python
- perform method - Action Chains in Selenium Python
- Python | Button Action in Kivy
- Floating Action type button in kivy - Python
- Animated Floating Action Button in kivy - Python
- How to get current_url using Selenium in Python?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.