Search code examples
javaseleniumselenium-webdriverbrowser-tab

Switch between browser tabs using Selenium WebDriver with Java


I need to switch between the browser tabs, used the following code,

driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");

It was working properly sometimes only, but sometimes it is showing an exception. Can anyone suggest me is there any other instructions for switching tabs within a single window by using java.


Solution

  • 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!