Sometimes, normal click actions in Selenium do not work because of hidden elements or overlays. Clicking via JavaScript helps to click elements directly using code.
0
0
Clicking via JavaScript in Selenium Java
Introduction
When a button is hidden behind another element and normal click fails.
When a web page uses custom controls that block Selenium's click.
When you want to speed up clicking without waiting for Selenium's checks.
When testing a page with complex animations that interfere with clicks.
Syntax
Selenium Java
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", element);You need to cast your WebDriver to JavascriptExecutor first.
The arguments[0] refers to the WebElement you want to click.
Examples
Clicks a button element using JavaScript.
Selenium Java
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", buttonElement);Finds a link by ID and clicks it via JavaScript.
Selenium Java
WebElement link = driver.findElement(By.id("myLink")); JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].click();", link);
Sample Program
This program opens a webpage, finds a button that might be hidden or blocked, and clicks it using JavaScript. It prints a success message if the click runs.
Selenium Java
import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class ClickViaJSExample { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); try { driver.get("https://example.com"); WebElement button = driver.findElement(By.id("hiddenButton")); JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].click();", button); System.out.println("Clicked the button via JavaScript successfully."); } finally { driver.quit(); } } }
OutputSuccess
Important Notes
Clicking via JavaScript bypasses normal Selenium checks, so use it only when regular clicks fail.
Make sure the element is present and interactable before clicking to avoid errors.
Summary
Clicking via JavaScript helps when normal clicks do not work.
Use JavascriptExecutor and executeScript with arguments[0].click().
It is a useful trick but should be used carefully.