Showing posts with label pop up window handling using webdriver. Show all posts
Showing posts with label pop up window handling using webdriver. Show all posts

Sunday, 13 January 2013

Detecting no.of popups , Fetching their titles and closing popups using webdriver

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.*;

// ---- Detecting no.of popups and fetching
//      their titles and closing popups
// ---- closing all parent and child window with .quit() method.

public class WebDriverPopupDemo {

    /**
     * @param args
     */
    public static WebDriver oBrowser;
    public static String sUrl = "http://naukri.com";
// --- Reading existing text from TextBox
    public static void main(String[] args)
    {
        boolean bIsBrowserOpened;
       
        bIsBrowserOpened = OpenBrowser();
       
        if (bIsBrowserOpened)
        {
           
            Get_Popup_Count();
            Get_Popup_Title();
            Closing_Popups();
            CloseBrowser();   
        }
       
   
    }
   
    public static boolean OpenBrowser()
    {
        try
        {
            oBrowser = new FirefoxDriver();
            oBrowser.get(sUrl);
            try
                {
                    Thread.sleep(5000L);
                }
            catch (Exception e)
                {
                    e.printStackTrace();
                }
        }
        catch (Exception e)
        {
            System.err.println(e.getMessage());
            return false;
        }
        return true;
       
    }
   
    public static void Get_BrowserInfo()
    {
        String sTitle, sSource;
        sTitle = oBrowser.getTitle();
        sSource = oBrowser.getPageSource();
        System.out.println("Page Title ="+sTitle);
        System.out.println("******");
        System.out.println("Page Source....");
        System.out.println(sSource);
    }
   
    public static void CloseBrowser()
    {
        // oBrowser.close(); // --- closes only parent
       
        oBrowser.quit(); // --- closes all, including popups..
    }
   
    public static void Get_Popup_Count()
    {
        int iPopupCount;
       
        iPopupCount = oBrowser.getWindowHandles().size();
       
        if (iPopupCount == 1)
        {
            System.out.println("Only! parent window & no popups");
           
        }
        else
        {
        System.out.println("parent and popup both exist");   
        System.out.println("Total No of Windows = "+iPopupCount);
       
        }
    }
   
    public static void Get_Popup_Title()
    {
        int iPopupCount, iPopup;
        Object[] lsAllHandles;
        String sWindowTitle;
       
        lsAllHandles = oBrowser.getWindowHandles().toArray();
       
        iPopupCount = lsAllHandles.length;
       
        for (iPopup=0; iPopup<iPopupCount; iPopup++)
        {
            sWindowTitle = oBrowser.switchTo().window((String) lsAllHandles[iPopup]).getTitle().toString();
           
            if (iPopup==0)
            {
            System.out.printf("\n Main window title = %s",
                    sWindowTitle);
            }
            else
                System.out.printf("\n window (%d of %d) = %s",
                        iPopup, iPopupCount-1,sWindowTitle);
        }
       
       
    }
   
    public static void Closing_Popups()
    {
        int iPopupCount, iPopup;
        Object[] lsAllHandles;
        String sWindowTitle;
       
        lsAllHandles = oBrowser.getWindowHandles().toArray();
       
        iPopupCount = lsAllHandles.length;
       
        if (iPopupCount>0) // -- there are popups
        {
       
            for (iPopup=1; iPopup<iPopupCount; iPopup++)
            {
                sWindowTitle = oBrowser.switchTo().window((String) lsAllHandles[iPopup]).getTitle().toString();
               
                System.out.printf("\n Closing Pop Window (%d of %d)=%s",
                        iPopup,iPopupCount-1,sWindowTitle);
                oBrowser.switchTo().window((String)lsAllHandles[iPopup]).close();
            }
            oBrowser=oBrowser.switchTo().window((String)lsAllHandles[0]);
        }
       
       
    }
   
   

}