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);