Have a question?
Message sent Close
View Categories

How to handle advanced functionality using JavaScriptExecutor?

📄
filename.js
// Locate the visible container or label of the custom checkbox

WebElement customCheckbox = driver.findElement(By.cssSelector(".custom-checkbox")); // adjust selector

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("arguments[0].click();", customCheckbox);

📄
filename.js
// Open the dropdown

WebElement dropdown = driver.findElement(By.cssSelector(".custom-dropdown"));

js.executeScript("arguments[0].click();", dropdown);

// Wait for options to be visible (add an explicit wait if needed)

WebElement option = driver.findElement(By.xpath("//div[text()='Desired Option']"));

js.executeScript("arguments[0].click();", option);

📄
filename.js
WebElement input = driver.findElement(By.id("react-input"));

String value = "Hello Framework!";

js.executeScript(

    "arguments[0].value=arguments[1];" +

    "arguments[0].dispatchEvent(new Event('input', { bubbles: true }));" +

    "arguments[0].dispatchEvent(new Event('change', { bubbles: true }));",

    input, value

);

📄
filename.js
WebElement textBox = driver.findElement(By.id("username"));

JavascriptExecutor js = (JavascriptExecutor) driver;

String value = (String) js.executeScript("return arguments[0].value;", textBox);

System.out.println("Text box value: " + value);

📄
filename.js
WebElement element = driver.findElement(By.id("customLabel"));

String text = (String) js.executeScript("return arguments[0].textContent;", element);

System.out.println("Element text: " + text);

📄
filename.js
try {

    WebElement element = driver.findElement(By.id("someElement"));

    JavascriptExecutor js = (JavascriptExecutor) driver;

    js.executeScript("arguments[0].click();", element);

    System.out.println("Clicked element using JS.");

} catch (org.openqa.selenium.JavascriptException je) {

    System.err.println("JavaScript execution failed: " + je.getMessage());

} catch (org.openqa.selenium.NoSuchElementException ne) {

    System.err.println("Element not found: " + ne.getMessage());

} catch (Exception e) {

    System.err.println("Other error: " + e.getMessage());

}