Action Class in Selenium: Its Method and Implementation

Action Class in Selenium: Its Method and Implementation

Selenium stands apart from other testing tools by offering a variety of techniques to test applications, which has led to its widespread use in automating web applications. No matter how complicated the user interface (UI) is, Selenium offers several methods to automate web apps, decreasing or eliminating the need for manual labor.

So, how can we automate online applications when using a mouse or keyboard to communicate with the browser?

In Selenium WebDriver, you can interact with a keyboard or mouse using the Actions class. Action class in Selenium provides different methods to perform a series of actions in the browser.

In this blog, we will discuss Actions class and how we can implement its method.

Let’s get started.

What is the Action Class in Selenium?

The Action class in Selenium WebDriver is a utility class that enables advanced user interactions such as mouse and keyboard events. This class provides a way to simulate complex user interactions like double-clicking, right-clicking, holding down a key, etc.

By using the Actions class, you can interact with a website in the same way a user would, allowing you to test more complex interactions that can’t be accomplished with just simple method calls. 

The Actions class provides a fluent interface for building and performing actions, which can be performed on specific web elements.

Methods of Actions Class

Actions class is broadly divided into two categories:

1) Mouse actions

2) Keyboard actions

Mouse Actions

Mouse actions in Selenium are the actions that can be performed using a mouse, such as clicking, double-clicking, right-clicking, dragging and dropping, etc. These actions simulate a user’s interactions with a website through the mouse.

The Actions class in Selenium WebDriver provides the following mouse action:

1) click(): performs a single mouse click on the specified element.

2) clickAndHold(): holds down the left mouse button on the specified element.

3) contextClick(): performs a right-click on the specified element.

4) doubleClick(): performs a double-click on the specified element.

5) dragAndDrop(): performs a drag and drop operation between two elements.

6) release(): releases the left mouse button on the specified element.

7) moveToElement(): moves the mouse cursor to the middle of the specified element.

Keyboard Actions

Keyboard actions in Selenium are the actions that can be performed using a keyboard, such as pressing keys, holding down keys, releasing keys, etc. These actions simulate a user’s interactions with a website through the keyboard.

The Actions class in Selenium provides the following keyboard actions:

1) sendKeys(CharSequence… keysToSend): sends a series of key presses to the specified element.

2) keyDown(Keys theKey): holds down the specified key.

3) keyUp( Keys theKey): releases the specified key.

Implementation of Actions class method

It’s time to start including the Selenium Actions class in your test automation scripts. Follow the steps listed below:

Step 1 – Import the necessary packages

Step 2 – Create a webdriver instance

Step 3 – Navigate to the URL of the web page you want to interact

Step 4 – Create an instance of the Actions class.

Step 5 – Use the methods of the Actions class to perform actions on the web page

Step 6 – Close the webdriver after you’re done

Let’s understand the implementation of each method:

1.   SendKeys

SendKeys() is a method in the Action class in Selenium WebDriver that sends keyboard input to a web page. It simulates keyboard events such as pressing keys, holding keys, and releasing keys. The method takes a string argument representing the keys to be sent to the page.

Here is an example of how sendKeys() can be used in Selenium WebDriver:

Code snippet:


2. Mouse Click

MouseClick() is a method in the Actions class in Selenium WebDriver that simulates a mouse click on an element on a web page. It performs click events on a web page, such as clicking a button or a link. The method takes no arguments and clicks the element that was last targeted by the moveToElement() method.

Code snippet:


3. MoveToElement

MoveToElement is a method in Selenium’s Actions class. It moves the mouse cursor to a specific element on a web page. By simulating mouse movement, you can perform actions like hover, click, and drag-and-drop. 

This is useful for testing dynamic UI elements, such as drop-down menus, tooltips, and mouse-over effects. To use this method, you’ll first need to create an instance of the Actions class, and then chain the moveToElement method to it.

Code snippet:


4. DoubleClick and ContextClick

DoubleClick performs a double-click action on a web page element. This is useful for testing interactive UI elements that respond to double clicks, such as a file or folder in a file explorer.

ContextClick performs a right-click (or context-click) action on a web page element. This is useful for testing context menus that appear on a right-click.

Code Snippet:


5. DragAndDrop

DragAndDrop is a method in the Selenium Actions class. It simulates the dragging and dropping of an element on a web page. This is useful for testing interactive UI elements that respond to drag-and-drop actions, such as sorting elements in a list or moving an element from one container to another.

Code Snippet:


6. KeyUp / KeyDown

keyDown and keyUp are methods in the Selenium Actions class. They simulate the pressing and releasing of keyboard keys. This is useful for testing web pages that respond to keyboard input, such as form fields or game controls.

Code Snippet:

Conclusion

In this article, we have looked at the Selenium Actions class and the many methods for interacting with browsers. Various actions have been demonstrated, including clicking the mouse, inputting text, dragging and dropping, moving to a particular element, double-clicking, right-clicking, copying material, refreshing a page, and changing text’s case, etc. I hope you now recognize the significance of the Selenium Actions class and its applications.

Happy testing!

Frequently Asked Questions

1.  What is the use of build () and perform () in actions?

Build and Perform are methods in the Selenium Actions class. They are used together to create and execute complex user interactions on a web page.

Build is used to create an instance of the Actions class and associate it with a specific WebDriver instance. The methods keyDown, keyUp, click, doubleClick, contextClick, moveToElement, and dragAndDrop can be chained together to create a series of actions. Once you have specified all the actions you want to perform, you can call the build method to build the Actions object.

Perform is used to execute the actions that were built using the build method. Once you call to perform, Selenium will execute the actions in the order that they were specified.

2. Why is the ContextClick () used?

The contextClick method is used to simulate a right-click on an element on a web page. This is useful for testing web pages that have context menus that are triggered by right clicks.

Here’s an example of how to use the contextClick method:

3. What is the use of release() in actions?

In Selenium, the Action class provides a way to define a series of complex user interactions that simulate a user’s interactions with a web page. The release() method in the Action class is used to release any system resources (e.g. keyboard, mouse) that were acquired during the performance of an action, such as clicking a button or typing into a text box.

The release() method is typically called after the action has been performed, to ensure that the system resources are freed up and can be used by other parts of the application. This helps to avoid resource leaks, which can cause stability and performance problems over time.

In summary, the release() method in the Selenium Action class is used to free up system resources that were acquired during the performance of an action so that they can be used by other parts of the application


Test automation made easy

Start your smart continuous testing journey today with Testsigma.

SHARE THIS BLOG

RELATED POSTS