Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the responsive-lightbox domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hueman domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/wp-includes/functions.php on line 6114
Work with multiple browser windows - Testingpool

Work with multiple browser windows

In the previous post,we have seen how to enter data into edit boxes and click on button. In this post ,we will see how to work with multiple browser windows.

This situation may come in any of your application, that when you click on any link or button , it will open a new browser window where you need to perform some desired tasks. We will see how to handle those situation.

Let’s take example from our demo application. We have 3 links over there , and if we click at the link ‘Learn Selenium!!’, it will open into a new window. It opens a Selenium Tutorials page. We will verify the title of the page to make sure that it has switched to the child browser. After that we will close this child browser and switch to the parent browser.

To verify that it has again switched to the parent browser, we will perform some activity on the parent browser e.g. let’s enter name in first name.

Link click

public class MultipleBrowser {
	private static WebDriver driver;
	public static void main(String[] args) throws InterruptedException {
		
		driver = new FirefoxDriver();
		
		driver.manage().window().maximize();
		driver.get("https://testingpool.com/wp-content/uploads/2015/08/DemoApplication.html");
		WebElement link = driver.findElement(By.xpath("html/body/p[2]/a[1]"));
		//click on the link
		link.click();
		// get all window handles 
		Set<String> allWindow = driver.getWindowHandles();
		
		Iterator<String> iter = allWindow.iterator(); // create an iterator with String
		String Parent = iter.next();
		String child = iter.next();
		
		// Switch to child browser
		driver.switchTo().window(child);
		System.out.println("Title : "+driver.getTitle());
		driver.close();
		
		driver.switchTo().window(Parent);
		driver.findElement(By.xpath("//*[@id='firstname']")).sendKeys("Shekhar");
 	}
}
Output: Title : Selenium Tutorials | Testingpool

It has switched to the child browser which is Selenium Tutorials page as we can see it prints the title of the page successfully. It has switched to the parent window successfully, enter name in the edit box ‘First Name’.

Enter Name

Explanation of Function:

  • Open application and create a webelement named ‘link’ (Selenium learning!!)
  • Click on the link , it will open another browser window
  • getWindowHandles() :  This method returns browser window handles. Each browser handle is unique , with which selenium identifies the desired browser. It returns a set of Strings.
  • Iterator(): Iterate over the collection of window handles and provide parent window handle and child window handle.
  • switchTo(): This method helps to switch to parent to child window and vice versa.
  • driver.getTitle(): It will return the title of the current focused browser window.
  • driver.close(): Closing child browser.

 

Avatar photo

Shekhar Sharma

Shekhar Sharma is founder of testingpool.com. This website is his window to the world. He believes that ,"Knowledge increases by sharing but not by saving".

You may also like...