Powered By Blogger

Search Here!

Showing posts with label Select Window. Show all posts
Showing posts with label Select Window. Show all posts

Saturday, February 16, 2013

Webdriver wait for window get loads and then select window

Wait for window get loads and then select the window.

///
/// Wait for window till it gets load on the page.
///

/// The name of the window.
/// This is time to wait.
/// if the window not loads in the specified interval of time.

/// If the window not exists on the page.

        protected void WaitUntilWindowLoads(string windowName, int timeOut = -1)
        {
            // Intialization of bool 'isWindowPresent' for checking window present
            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();
            if (timeOut == -1)
            {
                timeOut = this.waitTimeOut;
            }
            while (stopWatch.Elapsed.TotalSeconds < timeOut)
            {
                try
                {
                    //Wait for window
                    if (WaitUntilWindow(windowName) == true) break;
                }
                catch (Exception)
                {
                    // For Any exceptions catch value is assinged false
                }
            }
        }
  
///

/// Is Window Opened In the Specified Interval of Time or not.
///

/// This is the name of the window.
/// This is the time to wait for window get open.
/// True if the window is opened otherwise false.

/// If the window not able to find in the specified time.

/// If the window not exists on the page.

        protected bool WaitUntilWindow(string windowName, int timeOut = -1)
        {
            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();
            if (timeOut == -1)
            {
                timeOut = this.waitTimeOut;
            }
            while (stopWatch.Elapsed.TotalSeconds < timeOut)
            {
                if (WebDriver.WindowHandles.Any(item => WebDriver.SwitchTo().Window(item).Title == windowName))
                {
                    return true;
                }
            }
            stopWatch.Stop();
            return false;
        }