Understanding Click Command in Selenium
By Jash Unadkat, Technical Content Writer at BrowserStack - February 14, 2023
A click is the most fundamental user action performed by anyone accessing the internet. It allows the user to navigate web pages or perform particular tasks by interacting with links, buttons, and other web elements.
Let’s consider an example. A user needs to first click on the address bar to enter a URL in order to visit a particular website. Then, to login to an account, one needs to click on input fields like ID and Password to enter credentials. Then, they must click on Login. In a nutshell, the click operation is at the core of web browsing.
Every web page comprises of several web-elements (Links, buttons, radio buttons, Checkboxes), and every website has multiple web pages. To ensure a seamless user journey across pages within a particular website, QA engineers need to test the website thoroughly. To achieve extensive test coverage, teams use automation tools like Selenium for automated testing.
Selenium Click Command
Selenium Click command is a must-know if you are automating UI testing for your web app. QA engineers use the Click command offered by Selenium WebDriver to interact with web elements. It helps simulate the click action users perform in the real world.
Selenium click() command is used to emulate the click operation on elements like buttons, links, etc. By using the Selenium click command one can save a lot of time spent on manual testing as well as identify bugs in the app.
However, there are multiple subsets of the click action – left-click, right-click, double-click, drag, drop, etc. This article will describe how to automate different click operations in Selenium using the Selenium click() command and Actions class.
Note: QA engineers automate advanced click operations like double clicks, hovering, drag and drop using the Action class. It is a built-in capability in Selenium that can also be used for automating keyboard inputs.
Also Read: How to perform Double Click in Selenium
In order to perform a specific operation on a particular element, start by gaining a fundamental understanding of how to locate elements in Selenium.
How to perform a Left Click in Selenium?
A left-click is a fundamental operation. To perform a left mouse click, one needs to locate a particular element first and then perform the click operation using the click() command.
Let’s consider a sample scenario: Visit BrowserStack.com and click on the Get Started free button.
Code:
driver.get("https://www.browserstack.com/"); driver.findElement(By.id("signupModalButton")).click(); //using Selenium click button method
The code above does the following:
- Navigates to the BrowserStack website
- Locates the “Get Started Free” button using its “id” as the locator and performs a left click on it
Read More: Quick XPath Locators Cheat Sheet
How to perform a Right Click in Selenium?
For automating the right-click operation, Selenium provides a dedicated method – contextClick(). This method accepts the target WebElement as the argument. In order to use this method, use the Actions class object. The method of locating the desired element remains the same.
Refer to the code below:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; public class RightClickDemo { public static void main(String[] args) { //Set system properties System.setProperty(" < Path of the Browser Driver > "); // Create a new instance of the Firefox driver WebDriver driver = new FirefoxDriver(); // Visiting the URL driver.get("<Enter the target URL>"); //Maximise browser window driver.manage().window().maximize(); //Instantiating the Actions Class Actions actions = new Actions(driver); // Fetching or locating WebElement to perform right-click using the desired locators WebElement btnElement = driver.findElement(By.id("id-value")); //Right click the button to display Context Menu actions.contextClick(btnElement).perform(); System.out.println("Context Menu displayed"); // Code To click on a specific option from the Context menu once right-click is performed. WebElement elementOpen = driver.findElement(By.xpath("<Xpath of the specific option")); elementOpen.click(); // Accept the Alert driver.switchTo().alert().accept(); System.out.println("Right click Alert Accepted Successfully "); // Terminating the operation driver.close(); } }
The code above, when executed, navigates to the target website, locates the particular web element, performs the right-click operation, and selects the desired option from the context menu.
Run Instant Selenium Tests on Cloud
Performing a Double Click in Selenium
In some cases, a user needs to double click on a particular button and open a folder or file while performing browser testing. Similar to the right-click operation, the Actions class can be used to simulate the double click. Refer to the Syntactic Code below that explains how to perform the double click operation in Selenium:
driver.get("URL of target website / webpage"); // Define the URL of the target website. Actions act = new Actions(driver); //Double click on element WebElement web2 = driver.findElement(By.xpath("XPath of the element")); act.doubleClick(web2).perform();
Also read: How to drag and drop in Selenium
Discovering bugs or functional errors is only possible when a tester plays around or interacts with every element on a website. For this, QAs need to simulate user interactions by creating automated test scripts. The Selenium Click command allows them to do this and facilitates the comprehensive verification of website functionality.