Can anyone tell me how to close all opened tabs except the first tab/main tab using webdriver?
I tried below, but it is closing all tabs including first tab as well.
public static void closeTabs() {
String wh1=driver.getWindowHandle();
String cwh=null;
while(wh1!=cwh)
{
new Actions(driver).sendKeys(Keys.CONTROL).sendKeys(Keys.NUMPAD1).perform();
driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL, Keys.TAB);
cwh=driver.getWindowHandle();
driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL+"w");
}
}
Please help me.
I did the following to close all windows but the main one:
// Find out which handle is the one of the main window
String mainWindow = driver.CurrentWindowHandle;
// Get a list of all windows, except the main window
driver.WindowHandles.Where(w => w != mainWindow).ToList()
// For each window found
.ForEach(w =>
{
// switch to the window
driver.SwitchTo().Window(w);
// close the window
driver.Close();
});
// At the end, come back to the main window
driver.SwitchTo().Window(mainWindow);
Get all the window handles then iterate through them, switching webdriver to the new handle, then calling the close method. Obviously skip this for the original handle, then switch back to the remaining handle.
Something like;
String originalHandle = driver.getWindowHandle();
//Do something to open new tabs
for(String handle : driver.getWindowHandles()) {
if (!handle.equals(originalHandle)) {
driver.switchTo().window(handle);
driver.close();
}
}
driver.switchTo().window(originalHandle);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With