Debug School

rakesh kumar
rakesh kumar

Posted on

Explain different kind of real time application of action chain in selenium python

In Selenium with Python, an "action chain" allows you to perform a sequence of actions, such as mouse clicks, keyboard inputs, and other interactions, in a specific order. This can be useful for performing more complex interactions on web pages. Here's how to use action chains in Selenium with Python, along with examples:

Import the necessary modules:

First, make sure you have Selenium installed. You can install it with pip if you haven't already:

pip install selenium
Enter fullscreen mode Exit fullscreen mode

Then, import the required modules in your Python script:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
Enter fullscreen mode Exit fullscreen mode

Create a WebDriver instance:

Create an instance of the WebDriver for your preferred browser. In this example, we'll use Chrome:

driver = webdriver.Chrome()
Enter fullscreen mode Exit fullscreen mode

Perform actions using ActionChains:

You can create an ActionChains object to perform a series of actions. Here are some common actions and how to use them:

Mouse Actions:

Move the mouse to an element:

element = driver.find_element_by_id("some_element_id")
action = ActionChains(driver)
action.move_to_element(element).perform()
Enter fullscreen mode Exit fullscreen mode

Right-click on an element:

action.context_click(element).perform()
Enter fullscreen mode Exit fullscreen mode

Double-click on an element:

action.double_click(element).perform()
Enter fullscreen mode Exit fullscreen mode

Keyboard Actions:

Send keys to an input field:

input_element = driver.find_element_by_id("input_field_id")
action = ActionChains(driver)
action.send_keys_to_element(input_element, "Hello, World!").perform()
Enter fullscreen mode Exit fullscreen mode

Drag and Drop:

Drag an element and drop it onto another element:

source_element = driver.find_element_by_id("source_element_id")
target_element = driver.find_element_by_id("target_element_id")
action = ActionChains(driver)
action.drag_and_drop(source_element, target_element).perform()
Enter fullscreen mode Exit fullscreen mode

Perform the actions:

After defining the actions, use the .perform() method to execute them:

action.perform()
Enter fullscreen mode Exit fullscreen mode

Close the WebDriver:

Finally, make sure to close the WebDriver when you're done with your automation:

driver.quit()
Enter fullscreen mode Exit fullscreen mode

Here's a full example that demonstrates how to use action chains to perform a mouse hover action:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

# Create a WebDriver instance (e.g., Chrome)
driver = webdriver.Chrome()

# Navigate to a webpage
driver.get("https://example.com")

# Find the element to hover over
element = driver.find_element_by_id("some_element_id")

# Create an ActionChains object and perform a mouse hover
action = ActionChains(driver)
action.move_to_element(element).perform()

# Close the WebDriver when done
driver.quit()
Enter fullscreen mode Exit fullscreen mode

This example hovers the mouse over an element with a specific ID on a webpage using action chains. You can adapt this technique to perform other interactions and sequences of actions as needed for your web automation tasks.

Mouse Hover Actions:

Real-time application: Dropdown menus and submenus

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get("https://example.com")

element = driver.find_element_by_id("menu_element_id")

action = ActionChains(driver)
action.move_to_element(element).perform()

driver.quit()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Double-Click:

action = ActionChains(driver)
action.double_click(element).perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Right-Click (Context Menu):

action = ActionChains(driver)
action.context_click(element).perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Drag and Drop:

source_element = driver.find_element_by_id("source_element_id")
target_element = driver.find_element_by_id("target_element_id")

action = ActionChains(driver)
action.drag_and_drop(source_element, target_element).perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Keyboard Input:

input_element = driver.find_element_by_id("input_field_id")

action = ActionChains(driver)
action.send_keys_to_element(input_element, "Hello, World!").perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Slider Control:

slider_element = driver.find_element_by_id("slider_id")

action = ActionChains(driver)
action.click_and_hold(slider_element).move_by_offset(50, 0).release().perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Image description

Mouse Scroll:

action = ActionChains(driver)
action.move_to_element(element).click_and_hold().move_by_offset(0, 100).release().perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Image description

Multi-Step Interactions:

action = ActionChains(driver)
action.move_to_element(element1).click().send_keys("Hello").move_to_element(element2).click().perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Image description

Context Switching:

action = ActionChains(driver)
action.move_to_element(element).click().perform()
driver.switch_to.window(driver.window_handles[-1])
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Image description

Complex Forms and Wizards:

action = ActionChains(driver)
action.click(element1).send_keys("John").click(element2).send_keys("Doe").perform()
Enter fullscreen mode Exit fullscreen mode

Image description

Image description

Image description

Top comments (0)