How to switch from main window to popup window? How to switch from main window to popup window? selenium selenium

How to switch from main window to popup window?


Usually Modular Windows are part of the same DOM, unlike javascripts alerts. Only thing that sets them apart from rest of the page is that they are in different frame.

Try to see if this Modular Window lies inside a frame or iframe tag. If any of the parent is frame or iframe then you will have to change the context to that frame before you can performa any action on the Modal Window.

So find the frame do a driver.switchTo().frame() and then perform the action on the element you want to. Once the action is done, which would most probably bring you back to the main page. Use driver.switchTo().defaultContent() to bring focus back to main page.

This SO question will be helpful.

If this does not work it would be helpful to have a look at the page or its HTML.


//handle of the master window before clicking the linkString master = driver.getWindowHandle();driver.findElement(By.linkText("Click me")).click();//logic for waiting for the popup, checking the size to become greater than 1 or breaking after sometime to avoid the infinite loop.int timeCount = 1;do{   driver.getWindowHandles();   Thread.sleep(200);   timeCount++;   if ( timeCount > 50 )    {       break;   }}while ( driver.getWindowHandles().size == 1 );//Assigning the handles to a setSet<String> handles = driver.getWindowHandles();//Switching to the popup window.for ( String handle : handles ){    if(!handle.equals(master))    {         driver.switchTo().window(handle);    }}


Are you using pageobjects?

If you are using this, you will need to find the elements after the popup appears, because initElements will not initialize them if they are not visible when you first open the page.