Friday, June 14, 2024

Handle the radio buttons using JavaScript Executor (JSE)

 Handle the radio buttons using JavaScript Executor (JSE) :

------------------------------------------------------------------------

To handle the radio buttons using JavaScript Executor (JSE) in Selenium, you can follow these steps:

  1. Click 'Female' radio button using JSE by 'id'
  2. Get 'male' radio button status (selected or not)
  3. Unselect 'male' radio button using JSE
  4. Select 'female' radio button using checked = true
  5. Get 'female' radio button status (selected or not)
  6. Unselect 'female' radio button using checked = false

Below is the completed Java code with these tasks implemented:


package JSEBasics;


import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;


public class RadioBtnHandlingByJSE {


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


        System.setProperty("webdriver.chrome.driver", ".\\Drivers\\chromedriver.exe");


        // Open Chrome browser

        ChromeDriver driver = new ChromeDriver();    

        driver.get("file:///C:/brahma/Practise/qtp%20practise/web%20apps/ALL%20Web%20objects.html");


        // Creating JavascriptExecutor interface object by Type casting

        JavascriptExecutor js = (JavascriptExecutor) driver;


        // Click 'Male' radio button by id

        js.executeScript("document.getElementById('maleid').click();");

        Thread.sleep(3000);


        // Click 'Female' radio button using JSE by 'id'

        js.executeScript("document.getElementById('femaleid').click();");

        Thread.sleep(3000);


        // Get 'male' radio button status (is selected or not)

        Boolean maleRadioBtnChecked = (Boolean) js.executeScript("return document.getElementById('maleid').checked;");

        System.out.println("maleRadioBtnChecked=" + maleRadioBtnChecked);


        // Unselect male Radio button using JSE (if it is selected)

        if (maleRadioBtnChecked) {

            js.executeScript("document.getElementById('maleid').checked = false;");

        }

        Thread.sleep(3000);


        // Select 'female' radio button using checked = true

        js.executeScript("document.getElementById('femaleid').checked = true;");

        Thread.sleep(3000);


        // Get 'female' radio button status (is selected or not)

        Boolean femaleRadioBtnChecked = (Boolean) js.executeScript("return document.getElementById('femaleid').checked;");

        System.out.println("femaleRadioBtnChecked=" + femaleRadioBtnChecked);


        // Unselect 'female' radio button using checked = false

        if (femaleRadioBtnChecked) {

            js.executeScript("document.getElementById('femaleid').checked = false;");

        }

        Thread.sleep(3000);


        // Close the browser

        driver.quit();

    }

}


Handling 'Disabled' Elements Using JavaScriptExecutor (JSE):

 

Handling 'Disabled' Elements Using JavaScriptExecutor (JSE):

Even if an element is disabled, we can enter data into a textbox and click checkboxes using JSE. With Selenium alone, we cannot handle disabled elements. If we try to enter data into a disabled textbox using Selenium, it throws an "ElementNotInteractableException".

package JavaScriptExecutorBasics;


import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.JavascriptExecutor;


public class HandlingDisableElementsUsingJSE {


    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver", ".\\Drivers\\chromedriver.exe");


        // Open Chrome browser

        WebDriver driver = new ChromeDriver();    

        driver.get("file:///C:/brahma/Practise/qtp%20practise/web%20apps/ALL%20Web%20objects.html");


        // Initialize JavaScriptExecutor

        JavascriptExecutor jse = (JavascriptExecutor) driver;


        // Click checkbox 'I have an aeroplane' (disabled) using JSE

        // JS code: document.getElementsByName('bike')[2].checked=true;

        jse.executeScript("document.getElementsByName('bike')[2].checked=true;");


        // Homework tasks:

        // 1. Click 'Computer' checkbox using id with JSE

        //    JS code: document.getElementById('computerId').checked=true;

        //    Implement it in Java by calling executeScript() with the above JS code.


        // Enter data into 'ename' textbox (disabled) using JSE

        // JS code: document.getElementsByName('myname')[0].value = "Raja";

        jse.executeScript("document.getElementsByName('myname')[0].value = 'Raja';");


        // Homework tasks:

        // 1. Enter data into 'ename' textbox (disabled) using JSE

        //    JS code: document.getElementsByName('myname')[0].value = 'Raja';

        //    Implement it in Java by calling executeScript() with the above JS code.

    }

}


"Button" Handling Using JavaScriptExecutor (JSE)

 

"Button" Handling Using JavaScriptExecutor (JSE):

Sometimes, we are unable to click a button, such as 'Login', 'Sign in', or 'Save'. In such cases, we can use JavaScriptExecutor (JSE) for clicking the button.


package JavaScriptExecutorBasics;


import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.JavascriptExecutor;


public class BtnHandlingByJSE {


    public static void main(String[] args) {


        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Lenovo\\Downloads\\chromedriver_win32 (8)\\chromedriver.exe");


        // Open Chrome browser

        WebDriver driver = new ChromeDriver();    

        driver.get("file:///C:/brahma/Practise/qtp%20practise/web%20apps/ALL%20Web%20objects.html");


        // Initialize JavaScriptExecutor

        JavascriptExecutor jse = (JavascriptExecutor) driver;


        // Click 'MySubmit' button using id with JSE

        jse.executeScript("document.getElementById('MyButton').click();");


        // Get button 'type' attribute value (i.e., 'submit')

        String buttonType = (String) jse.executeScript("return document.getElementById('MyButton').type;");

        System.out.println("Button type: " + buttonType); // Output: Button type: submit


        // Get 'id' value of 'MySubmit' button using JSE

        String buttonId = (String) jse.executeScript("return document.getElementById('MyButton').id;");

        System.out.println("Button ID: " + buttonId); // Output: Button ID: MyButton


        // Get 'value' property of 'MySubmit' button (i.e., 'My Submit') using JSE

        String buttonValue = (String) jse.executeScript("return document.getElementById('MyButton').value;");

        System.out.println("Button value: " + buttonValue); // Output: Button value: My Submit


        // Homework tasks:

        // 1. Click the 'login' button using JSE

        //    JS code: document.getElementById('loginButton').click();

        //    Implement it in Java by calling executeScript() with the above JS code.

    }

}


"Textbox" Handling Using JavaScriptExecutor (JSE)

"Textbox" Handling Using JavaScriptExecutor (JSE):

  • Enter data into a textbox.
  • Retrieve the entered value from the textbox.
  • Clear the value from the textbox
package JavaScriptExecutorBasics;

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class TextboxHandlingByJSE {

public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", ".\\Drivers\\chromedriver.exe");

// //open chrome browser
WebDriver  driver =  new ChromeDriver();
driver.get("file:///C:/brahma/Practise/qtp%20practise/web%20apps/ALL%20Web%20objects.html");
//************************************

// Enter 'Sita' in 'first name' textbox
// driver.findElement(By.xpath("")).sendKeys("Raju");
//   assume that above line is not working 

//JSE -->  use "id" value
//   js code--> document.getElementById('idfirst').value='Raju';
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("document.getElementById('idfirst').value='Raju';");
Thread.sleep(4000);
//JSE -->  use "name" 
// document.getElementsByName("firstname").value='Sam';// Dont use this
//document.getElementsByName("firstname");
// //  return multiple elements-- use index no
// working

// document.getElementsByName("firstname").length; //1
//document.getElementsByName("firstname")[0];
// document.getElementsByName("firstname")[1]'
//document.getElementsByName("firstname")[0].value='Sam';
//document.getElementsByName('firstname')[0].value='Ranga'; // Prefer to use single quotes
// jse.executeScript("document.getElementsByName(\"firstname\")[0].value=\"Sam\";");// ok
jse.executeScript("document.getElementsByName('firstname')[0].value='Ranga';");

// get value from textbox
// ele.getAttribute("value");
// JS code -->  use id  --> document.getElementById('idfirst').value;
Object valFromFirstNameTxtbox =  jse.executeScript("return document.getElementById('idfirst').value;");
//                                   Ranga
//
System.out.println("valFromFirstNameTxtbox="+valFromFirstNameTxtbox);
//valFromFirstNameTxtbox=Ranga

// Clear the value from text box 
// JS code --> use id --> document.getElementById('idfirst').value='';
jse.executeScript("document.getElementById('idfirst').value='';");


// HW Enter value in "last name" textbox using getElementByid()  using JSE
// HW get value from last name tetxbox using getElementByid - JSE

// 2.  Enter value in "last name" textbox using getElementsByname  using JSE
//JS code-->         //  not working

// HW get value from last name tetxbox using 'name' - JSE
// JSe --> 
System.out.println("valFromLastNAmeTxtbox=");
//valFromLastNAmeTxtbox=rao

//  Enter 'sita' in 'first name' txtbox using  getElementsByName
//js : 

// HW enter value in 'Test' field using JSE use getelemntById()  or getElementsByName();


// HW enter value in password usinsg JSE

// HW enter some value 'first name' text box using  getElementsByClassName
// js code: document.getElementsByClassName('firstclass')[0].value='Ramu';
//HW Get value 'first name' text box using  getElementsByClassName
// HW enter some value 'last name' text box using  getElementsByClassName()
// HW Get value 'last name' text box using  getElementsByClassName


}

}

git commands MCQ

 Here are some multiple-choice questions (MCQs) on Git commands relevant for Selenium: 1. Which Git command is used to clone a remote reposi...