</>

Technology

Selenium

Difficulty

Intermediate

Interview Question

What is JavascriptExecutor in Selenium?

JavascriptExecutor is a Selenium interface that lets you run JavaScript code directly in the browser during test execution.

Answer

JavascriptExecutor is an interface in Selenium WebDriver that allows executing JavaScript code within the browser context.

Cast the driver:

Java
JavascriptExecutor js = (JavascriptExecutor) driver;

Common use cases:

Click hidden element:

Java
WebElement btn = driver.findElement(By.id("hiddenBtn"));
js.executeScript("arguments[0].click();", btn);

Scroll to element:

Java
WebElement el = driver.findElement(By.id("footer"));
js.executeScript("arguments[0].scrollIntoView(true);", el);

Scroll to bottom of page:

Java
js.executeScript("window.scrollTo(0, document.body.scrollHeight);");

Set input field value (bypasses readonly):

Java
js.executeScript("arguments[0].value=''test@email.com'';", emailField);

Get page title:

Java
String title = (String) js.executeScript("return document.title;");

Highlight element for debugging:

Java
js.executeScript("arguments[0].style.border=''3px solid red'';", element);

When to use JavascriptExecutor:

  • Element is not interactable via normal Selenium methods
  • Need to scroll to a specific position
  • Setting readonly or disabled field values
  • Triggering custom JS events

Follow AutomateQA

Related Topics