Switch between browser tabs using Selenium WebDriver with Java

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

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

It worked only occasionally, but sometimes it shows an exception. Can anyone suggest me any other instructions for switching tabs in one window using java.

+6
source share
3 answers

Here you should use the window handle function. Here is an example of 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 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!

+8
source

Switching between browser windows is different than switching b / w tabs.

In some cases, the browser window handler command may work, but it will not work in all browsers.

Here is the b / w tab navigation solution

to navigate from left to right:

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

To navigate from right to left:

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

In my case, the following code works 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); 
0
source

Source: https://habr.com/ru/post/974420/


All Articles