</>

Technology

Selenium

Difficulty

Intermediate

Interview Question

How to switch to an iframe in Selenium WebDriver?

Use driver.switchTo().frame() to enter an iframe context before interacting with elements inside it.

Answer

An iframe embeds another HTML document inside the current page. Selenium must switch context into the iframe before interacting with its elements.

Switch by index:

Java
driver.switchTo().frame(0);

Switch by name or id:

Java
driver.switchTo().frame("iframeName");
driver.switchTo().frame("iframeId");

Switch by WebElement:

Java
WebElement iframe = driver.findElement(By.tagName("iframe"));
driver.switchTo().frame(iframe);

Interact with elements inside iframe:

Java
driver.switchTo().frame("loginFrame");
driver.findElement(By.id("username")).sendKeys("admin");
driver.findElement(By.id("password")).sendKeys("pass123");
driver.findElement(By.id("loginBtn")).click();

Switch back to main document:

Java
driver.switchTo().defaultContent();

Switch to parent frame (nested iframes):

Java
driver.switchTo().parentFrame();

Best practice — always switch back:

Java
try {
    driver.switchTo().frame("myFrame");
    // interact with elements
} finally {
    driver.switchTo().defaultContent();
}

Follow AutomateQA

Related Topics