---Advertisement---

JavaScriptExecutor in Selenium WebDriver: Complete Guide with Examples Best 2025

By Manisha

Updated On:

---Advertisement---
JavaScriptExecutor in Selenium

 πŸ‘‰What is JavaScriptExecutor in Selenium?

JavaScriptExecutor in Selenium: JavaScriptExecutor is an interface provided by Selenium WebDriver that allows automation testers to execute JavaScript code within the context of the browser. It enables enhanced control over web pages when traditional locators (like XPath or CSS) fail to interact with dynamic or hidden elements.

Selenium provides two primary JavaScript execution methods:

  • executeScript()
  • executeAsyncScript()

These methods allow direct interaction with the DOM, making it easier to manipulate elements, perform clicks, scroll actions, and more.


πŸ‘‰ Why Use JavaScriptExecutor in Selenium?

JavaScriptExecutor in Selenium: In regular Selenium automation, locators like XPath, ID, Name, and CSS selectors are commonly used to identify elements. However, in some cases:

  • Elements might be hidden or disabled
  • Dynamic web elements don’t respond well to standard locators
  • Certain JavaScript-based actions cannot be triggered through Selenium methods

In such scenarios, JavaScriptExecutor offers a powerful alternative by directly interacting with the DOM using JavaScript.

🟒 No additional plugins are required
🟒 Just import org.openqa.selenium.JavascriptExecutor into your Selenium script


πŸ‘‰ JavaScriptExecutor Methods

Executes JavaScript code in the context of the currently selected window or frame.

  • Returns: Can return values like Boolean, String, Long, List, WebElement, etc.
  • Use Case: Scroll the page, click buttons, set input values, etc.

Example:

java

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript(“document.getElementById(‘submit’).click();”);


JavaScriptExecutor in Selenium: Executes asynchronous JavaScript, often used to improve performance and reduce wait times.

  • Use Case: Handling time-based operations or API responses
  • Note: The asynchronous script runs with a callback mechanism.

Example:

java

js.executeAsyncScript(

  “window.setTimeout(arguments[arguments.length – 1], 3000);”

);


πŸ‘‰ JavaScriptExecutor Syntax

java

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript(“script”, arguments);

  • script: JavaScript code you want to execute
  • arguments (optional): DOM elements or variables passed into the script

πŸ‘‰ Step-by-Step Implementation

JavaScriptExecutor in Selenium: Follow these steps to use JavaScriptExecutor in Selenium WebDriver:

java

import org.openqa.selenium.JavascriptExecutor;

java

JavascriptExecutor js = (JavascriptExecutor) driver;

java

js.executeScript(“document.getElementById(‘username’).value=’admin’;”);


πŸ‘‰ Example Code: JavaScriptExecutor in Selenium

java

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class JSExecutorExample {

    public static void main(String[] args) {

        WebDriver driver = new ChromeDriver();

        driver.get(“https://example.com”);

        JavascriptExecutor js = (JavascriptExecutor) driver;

        // Scroll the window

        js.executeScript(“window.scrollBy(0, 500)”);

        // Click a button using JavaScript

        js.executeScript(“document.getElementById(‘loginBtn’).click();”);

        // Enter text into a textbox

        js.executeScript(“document.getElementById(‘username’).value=’admin’;”);

        driver.quit();

    }

}


πŸ‘‰ Conclusion

JavaScriptExecutor in Selenium WebDriver is a highly useful interface when dealing with dynamic web pages or elements that can’t be handled using standard locators. Whether you want to scroll, click, or fetch hidden data β€” JavaScriptExecutor gives you direct control over the browser’s DOM.

πŸ‘‰ Key Points:

  • Use executeScript() for simple JavaScript execution
  • Use executeAsyncScript() for asynchronous operations
  • No extra plugins are required β€” just import the package

Click To Open

πŸ‘‰Tutorial-14:Β Selenium Python Tutorial
πŸ‘‰Tutorial-15:Β How to Set Up IntelliJ IDEA with Selenium
πŸ‘‰Tutorial-16:Β Flash Testing Using Selenium WebDriver
πŸ‘‰Tutorial-17:Β Apache Ant with Selenium WebDriver
πŸ‘‰Tutorial-18:Β How to Generate XSLT Reports in Selenium
πŸ‘‰Tutorial-19:Β GitHub Integration with Selenium WebDriver and Jenkins
πŸ‘‰Tutorial-20:Β Handling Cookies in Selenium WebDriver
πŸ‘‰Tutorial-21:Β Using SoapUI with Selenium WebDriver
πŸ‘‰Tutorial-22:Β Cucumber with Selenium WebDriver
πŸ‘‰Tutorial-23:Β Selenium Firefox Profile

AJAX Calls in Selenium

Testing Selenium Download 

Leave a Comment

Index