Search
  • +44-7459919437 (UK- WhatsApp & Direct Call) | +91-6383544892 (India - WhatsApp Only) | Email Id : vinothrwins@gmail.com
Vinoth Tech Solutions
  • Home
  • Selenium Java Online Training
  • Self Paced Video Course
    • Selenium Course Curriculum
    • Cypress Course Curriculum
    • Playwright Course Curriculum
  • Tutorials
  • Demo Sites
    • Practice Automation
      • Demo Page Healthcare
      • Registration Form
      • Transaction Details
      • DropDown
      • Mouse Event
      • Keyboard Events
      • Alert and Popup
      • Multiple Windows
      • iFrames
      • Wait WebElement
      • WebTable
  • FAQS
  • About Me & Feedback
    • Placed Students Feedback
    • Online Training Feedback
    • LinkedIn Profile
    • TechTalk
  • Free YouTube Courses
    • Python for Automation
    • Free QA Video Courses
      • Manual Testing
      • Java For Automation
      • Selenium Webdriver
      • TestNG
      • Cucumber BDD
      • UFT(QTP) Automation
    • Free Data Science Courses
      • Artificial Intelligence for Beginners
      • Python For A.I
      • Python Pandas
      • Python NumPy
      • Mathematics for A.I
  • Home
  • Selenium Java Online Training
  • Self Paced Video Course
    • Selenium Course Curriculum
    • Cypress Course Curriculum
    • Playwright Course Curriculum
  • Tutorials
  • Demo Sites
    • Practice Automation
      • Demo Page Healthcare
      • Registration Form
      • Transaction Details
      • DropDown
      • Mouse Event
      • Keyboard Events
      • Alert and Popup
      • Multiple Windows
      • iFrames
      • Wait WebElement
      • WebTable
  • FAQS
  • About Me & Feedback
    • Placed Students Feedback
    • Online Training Feedback
    • LinkedIn Profile
    • TechTalk
  • Free YouTube Courses
    • Python for Automation
    • Free QA Video Courses
      • Manual Testing
      • Java For Automation
      • Selenium Webdriver
      • TestNG
      • Cucumber BDD
      • UFT(QTP) Automation
    • Free Data Science Courses
      • Artificial Intelligence for Beginners
      • Python For A.I
      • Python Pandas
      • Python NumPy
      • Mathematics for A.I

Selenium Automation Testing

  • Introduction to Automation Testing
  •  Introduction to Selenium
  • Advantages and Disadvantages of Selenium WebDriver
  •  Locators in Selenium
  • How to launch the browsers ? 
  • Browser Navigation Commands in Selenium
  •  Handling the textbox and button using selenium
  • Handling the radio button and checkbox using selenium
  •  Handling the drop downs and multi-select dropdown
  • Validate the text validation and attributes values. 
  • Handling Alert Popup
  • Handling iFrames
  • Handling Multiple Browsers or Tabs
View Categories
  • Home
  • Tutorials
  • Selenium Automation
  • Selenium Automation Testing
  • Handling iFrames

Handling iFrames

Handling iFrames

Explanation of key steps:

1. Setup & launch – configure webdriver.chrome.driver and instantiate ChromeDriver.

2. Navigate – load the page with your <iframe> (replace the URL).

3. Locate iframe – use By.xpath(“//iframe[@id=’myFrame’]”) to find the <iframe>.

4. Switch context – driver.switchTo().frame(iframe) tells Selenium to operate inside that frame.

5. Interact – once inside, you can locate and act on elements (e.g., reading text, clicking buttons) just like on the main page.

6. Switch back – driver.switchTo().defaultContent() returns you to the top-level DOM.

7. Teardown – always quit the driver in a finally block to ensure the browser closes even if an error occurs.

Adjust the iframe locator, internal element locators, and URL to match your application under test.

Program:

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class IFrameHandlingExample {

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

        // 1. Point to your ChromeDriver executable

        System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");

        // 2. Launch Chrome

        WebDriver driver = new ChromeDriver();

        try {

            // 3. Navigate to the page containing your iframe

            driver.get("https://example.com/iframePage");

            // 4. Locate the <iframe> element using an XPath locator

            WebElement iframe = driver.findElement(

                By.xpath("//iframe[@id='myFrame']"));

            // 5. Switch context to the iframe

            driver.switchTo().frame(iframe);

            System.out.println("Switched into iframe.");

            // 6. Interact with elements inside the iframe

            //    For example, read a heading and click a button inside the frame

            WebElement frameHeading = driver.findElement(

                By.xpath("//h1[@id='frameTitle']"));

            System.out.println("Inside frame heading: " + frameHeading.getText());

            WebElement frameButton = driver.findElement(

                By.xpath("//button[@id='frameBtn']"));

            if (frameButton.isDisplayed() && frameButton.isEnabled()) {

                frameButton.click();

                System.out.println("Clicked button inside iframe.");

            }

            Thread.sleep(2000);  // demo pause

            // 7. Switch back to the main page content

            driver.switchTo().defaultContent();

            System.out.println("Switched back to main document.");

        } finally {

            // 8. Close the browser (end the session)

            driver.quit();

        }

    }

}

Handling Nested iFrames

Explanation of key steps:

1. Setup & launch – set the webdriver.chrome.driver system property and create a ChromeDriver instance.

2. Navigate – open the URL containing nested <iframe> elements.

3. Outer frame – locate the outer iframe by an XPath (e.g., //iframe[@id=’outerFrame’]) and switch into it with driver.switchTo().frame(outerFrame).

4. Inner frame – within the outer frame context, locate the nested iframe (e.g., //iframe[@id=’innerFrame’]) and switch into it.

5. Interact – now you can find and interact with elements inside the nested iframe just like on the main page.

6. Parent frame – use driver.switchTo().parentFrame() to go up one level (back into the outer iframe).

7. Default content – finally, driver.switchTo().defaultContent() returns you to the top-level DOM.

8. Teardown – wrapping in a try…finally and calling driver.quit() ensures the browser closes even if an exception occurs.

Program:

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class NestedIFrameExample {

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

        // 1. Point to your ChromeDriver executable

        System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");

        // 2. Launch Chrome

        WebDriver driver = new ChromeDriver();

        try {

            // 3. Navigate to the page containing nested iframes

            driver.get("https://example.com/nested-iframes");

            // 4. Locate the outer iframe and switch into it

            WebElement outerFrame = driver.findElement(

                By.xpath("//iframe[@id='outerFrame']"));

            driver.switchTo().frame(outerFrame);

            System.out.println("Switched into outer iframe.");

            // 5. Inside the outer iframe, locate the inner (nested) iframe and switch into it

            WebElement innerFrame = driver.findElement(

                By.xpath("//iframe[@id='innerFrame']"));

            driver.switchTo().frame(innerFrame);

            System.out.println("Switched into inner iframe.");

            // 6. Now inside the nested iframe: interact with elements here

            WebElement nestedButton = driver.findElement(

                By.xpath("//button[@id='nestedButton']"));

            if (nestedButton.isDisplayed() && nestedButton.isEnabled()) {

                nestedButton.click();

                System.out.println("Clicked button inside nested iframe.");

            }

            Thread.sleep(2000);  // demo pause

            // 7. Switch back to the outer iframe context

            driver.switchTo().parentFrame();

            System.out.println("Switched back to outer iframe.");

            // (Optional) Interact with an element in the outer frame

            WebElement outerHeading = driver.findElement(

                By.xpath("//h2[@id='outerTitle']"));

            System.out.println("Outer frame heading: " + outerHeading.getText());

            // 8. Switch back to the main page content

            driver.switchTo().defaultContent();

            System.out.println("Switched back to main document.");

        } finally {

            // 9. Close the browser (end the session)

            driver.quit();

        }

    }

}

Selenium Automation Testing
What are your Feelings
Share This Article :
  • Facebook
  • X
  • LinkedIn
Handling Alert PopupHandling Multiple Browsers or Tabs
© 2018 – 2025 Vinoth Tech Solutions Ltd (UK), Reg. No: 16489105