Advance Selenium

Javascript in Selenium Webdriver and Different usage

Hello, Welcome to Selenium Tutorials in this post we will see how we can introduce Javascript in Selenium Webdriver and what are the usage?

What is JavaScript

JavaScript is one of the programming languages of the Web.

All modern HTML pages are using JavaScript.

For more details, you can refer Wikipedia – JavaScript

 

Use of Javascript in Selenium Webdriver

We have used Java in our script and we implemented almost all features but some features we can’t handle or implement using Java so we need scripting language as well which can control server side or client side

Javascript in Selenium Webdriver

 

Implement JavaScript in Selenium Webdriver

To execute JavaScript in our webdriver script we do not have to write the separate code we have one predefined interface available.

JavascriptExecutor is an Interface which is available in package org.openqa.selenium.JavascriptExecutor;

Inside this Interface we have some predefined method called executeScript()- so whatever script you will pass as a String  It will be executed by JavascriptExecutor.

 

 

Note- This is the most common question in the interview that how to type in Selenium without using the sendKeys method.

Let us implement Javascript in Selenium Webdriver

Program 1- How to type in Selenium without using sendKeys() method

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.firefox.FirefoxDriver;

public class TestFirefox {

public static void main(String[] args) throws InterruptedException {

// Open Firefox browser
FirefoxDriver driver=new FirefoxDriver();

// Maximize the window
driver.manage().window().maximize();

// Open applicatiion
driver.get("enter your application URL");

// This will execute JavaScript in your script
((JavascriptExecutor)driver).executeScript("document.getElementById('some id').value='mukesh';");

}

}

 

Program 2- How to click in Selenium if button or radio button is disable

package seleniumday1;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.firefox.FirefoxDriver;

public class TestFirefox {

public static void main(String[] args) throws InterruptedException {

// Open Firefox browser
FirefoxDriver driver=new FirefoxDriver();

// Maximize the window
driver.manage().window().maximize();

// Open applicatiion
driver.get("enter your application URL");

// This will execute JavaScript in your script
((JavascriptExecutor)driver).executeScript("document.getElementById('enter your element id').click();");

}

}

 

Program 3- How to uncheck checkbox in Selenium if checkbox is disable

package seleniumday1;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.firefox.FirefoxDriver;

public class TestFirefox {

public static void main(String[] args) throws InterruptedException {

// Open Firefox browser
FirefoxDriver driver=new FirefoxDriver();

// Maximize the window
driver.manage().window().maximize();

// Open applicatiion
driver.get("enter your application URL");

// This will execute JavaScript in your script
((JavascriptExecutor)driver).executeScript("document.getElementById('enter element id').checked=false;");
}

}

 

 Please comment below if you are facing any issue. 

Thanks for visiting my blog. Keep in touch.

Happy Testing

author-avatar

About Mukesh Otwani

I am Mukesh Otwani working professional in a beautiful city Bangalore India. I completed by BE from RGPV university Bhopal. I have passion towards automation testing since couple of years I started with Selenium then I got chance to work with other tools like Maven, Ant, Git, GitHub, Jenkins, Sikuli, Selenium Builder etc.

12 thoughts on “Javascript in Selenium Webdriver and Different usage

  1. jaffar ali says:

    ((JavascriptExecutor)driver).executeScript(“document.getElementById(‘some id’).value=’mukesh’;”);

    In the above code, what is the “document”? Can you please explain

    Thanks

    1. Hi Jaffar,

      document here refers object which represents your web page so in order to access any element in your HTML page, you always start with document object.

  2. Gaurav Khurana says:

    It would be great if you can share the application where the above example can be tested

    Could you please help me with the below 2 problems which are coming in searcging elements on the below site

    drv.get(“http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_checkbox_disabled2”);

    WebElement el = drv.findElement(By.xpath(“//button[@onclick=’myFunction()’]”));

    el.click();

    ((JavascriptExecutor)drv).executeScript(“document.getElementById(‘myCheck’).click();”);

    Problem 1 :- System is not able to find the element by xpath(even though it works in firepath)
    I have changed it to
    WebElement el = drv.findElement(By.cssSelector(“button[onclick*=’my’]”));
    this is also detectable via firepath but not by program

    Problem 2 :- there is an element with id = myCheck but that is also not able to detect while executing the above javascript

    1. Hey Gaurav,

      The reason why your code is not working because it is inside frame so you can try the same html code in normal html file and try again.

  3. Gaurav Khurana says:

    hi

    Could you please share the situation where we may need to use javascript instead of selenium commands, apart from the interview question thing

  4. Ashley says:

    Thanks alot Mukesh for this useful tutorial. Please share me the answer of interview questions.

    Best,
    Ashley

    1. Hey Ashley,

      Kindly join mailing list to get Answers 🙂

  5. vijay says:

    Hi Mukesh

    its really helpful. Many thanks for your kind efforts

    1. Hey Vijay,

      Most welcome keep visiting.

  6. hanumanthappa says:

    Hi MuKesh,
    Please share me interview question links

    Regards
    Hanuamthappa

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.