Switch between browser tabs using Selenium WebDriver with Java Switch between browser tabs using Selenium WebDriver with Java selenium selenium

Switch between browser tabs using Selenium WebDriver with Java


You have to use window handle function here. Here is a sample working code in java:

    String parentHandle = driver.getWindowHandle(); // get the current window handle    System.out.println(parentHandle);               //Prints the parent window handle     String anchorURL = anchor.getAttribute("href"); //Assuming u are clicking on a link which opens a new browser window    anchor.click();                                 //Clicking on this window    for (String winHandle : driver.getWindowHandles()) { //Gets the new window handle        System.out.println(winHandle);        driver.switchTo().window(winHandle);        // switch focus of WebDriver to the next found window handle (that's your newly opened window)                  }//Now your driver works on the current new handle//Do some work here.....//Time to go back to parent window    driver.close();                                 // close newly opened window when done with it    driver.switchTo().window(parentHandle);         // switch back to the original window

Hope this helps!


Switching between browser window is different from switching b/w tabs.

In some browser windowhandler command may work but it wont work in all browser.

Here is the solution to navigate b/w tabs

for navigating left to right side:

Actions action= new Actions(driver);action.keyDown(Keys.CONTROL).sendKeys(Keys.TAB).build().perform();

For navigating right to left :

Actions action= new Actions(driver);action.keyDown(Keys.CONTROL).keyDown(Keys.SHIFT).sendKeys(Keys.TAB).build().perform();


In my case, the following code is working fine-

String oldTab=driver.getWindowHandle();    driver.findElement(pageObj.getL_Popup_Window()).click();     ArrayList<String> newTab = new ArrayList<String>(driver.getWindowHandles());        newTab.remove(oldTab);        driver.switchTo().window(newTab.get(0));    WebElement ele = driver.findElement(pageObj.getI_input_name());    ele.click();    ele.sendKeys(name);    driver.findElement(pageObj.getI_submit()).click();    driver.switchTo().window(oldTab);