In Java and C#, Selenium provides the JavascriptExecutor interface, which allows us to execute JavaScript in the browser. By casting the WebDriver instance to JavascriptExecutor, we can run JavaScript code using the executeScript() and executeAsyncScript() methods.
In Selenium with JavaScript a separate JavascriptExecutor interface is not required. The Selenium WebDriver API directly supports JavaScript execution through the executeScript() and executeAsyncScript() methods available on the driver object itself. Below are example scripts that demonstrate how to execute JavaScript in Selenium using Java, C#, and JavaScript.
Execute JavaScript
-
Java
-
C#
-
JavaScript
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class ExecuteJavaScript {
@Test
public void executeJS() {
WebDriver driver = new ChromeDriver();
driver.get("https://www.example.com");
// Upcast WebDriver to JavascriptExecutor
JavascriptExecutor js = (JavascriptExecutor) driver;
// Execute JavaScript
String title = (String) js.executeScript("return document.title;");
System.out.println("Page Title: " + title);
// Scroll down
js.executeScript("window.scrollBy(0,500);");
driver.quit();
}
}
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using NUnit.Framework;
namespace SeleniumExamples
{
public class JSExample{
[Test]
public void executeJS()
{
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.example.com");
// Cast IWebDriver to IJavaScriptExecutor
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
// Execute JavaScript
string title = (string)js.ExecuteScript("return document.title;");
Console.WriteLine("Page Title: " + title);
// Scroll down
js.ExecuteScript("window.scrollBy(0,500);");
driver.Quit();
}
}
}
const { Builder } = require("selenium-webdriver");
(async function executeJavaScript() {
let driver = await new Builder().forBrowser("chrome").build();
await driver.get("https://www.example.com");
// Execute JavaScript
let title = await driver.executeScript("return document.title;");
console.log("Page Title:", title);
// Scroll down
await driver.executeScript("window.scrollBy(0,500);");
await driver.quit();
})();