步骤1:打开网站后,通过getwindowhandle()程序得到主窗口的句柄。
步骤2:使用getwindowhandles()方法获取所有窗口句柄
步骤3:我们将将所有窗口句柄与主窗口句柄进行比较,并执行我们需要的窗口操作。
package com.pack;
import java.util.Set;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class WindowExamples {
static WebDriver driver;
@Test
public void test_CloseAllWindowsExceptMainWindow() {
driver = new FirefoxDriver();
// It will open Naukri website with multiple windows
driver.get("http://www.naukri.com/");
// To get the main window handle
String windowTitle= getCurrentWindowTitle();
String mainWindow = getMainWindowHandle(driver);
Assert.assertTrue(closeAllOtherWindows(mainWindow));
Assert.assertTrue(windowTitle.contains("Jobs - Recruitment"), "Main window title is not matching");
}
public String getMainWindowHandle(WebDriver driver) {
return driver.getWindowHandle();
}
public String getCurrentWindowTitle() {
String windowTitle = driver.getTitle();
return windowTitle;
}
//To close all the other windows except the main window.
public static boolean closeAllOtherWindows(String openWindowHandle) {
Set<String> allWindowHandles = driver.getWindowHandles();
for (String currentWindowHandle : allWindowHandles) {
if (!currentWindowHandle.equals(openWindowHandle)) {
driver.switchTo().window(currentWindowHandle);
driver.close();
}
}
driver.switchTo().window(openWindowHandle);
if (driver.getWindowHandles().size() == 1)
return true;
else
return false;
}
}