Monday, December 2, 2013

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

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

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...