Frames, Alerts & Windows
Handling iframes, browser alerts, and multiple windows.
iFrames
java
// Switch to iframe by index
driver.switchTo().frame(0);
// Switch by name/id
driver.switchTo().frame("iframe-name");
// Switch by WebElement
WebElement frame = driver.findElement(By.cssSelector("iframe.content"));
driver.switchTo().frame(frame);
// Return to main page
driver.switchTo().defaultContent();Alerts
java
import org.openqa.selenium.Alert;
Alert alert = driver.switchTo().alert();
System.out.println(alert.getText()); // get message
alert.accept(); // click OK
alert.dismiss(); // click Cancel
alert.sendKeys("my input"); // for prompt dialogsMultiple Windows / Tabs
java
String mainWindow = driver.getWindowHandle();
// Open new tab
driver.findElement(By.id("open-tab")).click();
// Switch to new tab
for (String handle : driver.getWindowHandles()) {
if (!handle.equals(mainWindow)) {
driver.switchTo().window(handle);
break;
}
}
// Do work in new tab...
// Close and switch back
driver.close();
driver.switchTo().window(mainWindow);