cpoDesign
cpoDesign

Reputation: 9153

Verifying download box pop up using selenium

I have a website where I am using selenium for integration testing.

I have link there that is generated using multiple variables from page. I would like to verify the download pop up box is displaying if at all possible, when i am simulating click on link to download the file.

I know i can have JsUnit that will do that for me.

Any ideas?

Upvotes: 0

Views: 1009

Answers (2)

cpoDesign
cpoDesign

Reputation: 9153

Thnx to Slanec i have took up your examples.

Ok after investigation I have decided that best solution will be something along this line.

    public int GetFileLenghtFromUrlLocation(string location)
    {
        int len = 0;
        int timeoutInSeconds = 5;

        // paranoid check for null value
        if (string.IsNullOrEmpty(location)) return 0;

        // Create a web request to the URL
        HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(location);
        myRequest.Timeout = timeoutInSeconds * 1000;
        myRequest.AddRange(1024);
        try
        {
            // Get the web response
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();

            // Make sure the response is valid
            if (HttpStatusCode.OK == myResponse.StatusCode)
            {
                // Open the response stream
                using (Stream myResponseStream = myResponse.GetResponseStream())
                {
                    if (myResponseStream == null) return 0;

                    using (StreamReader rdr = new StreamReader(myResponseStream))
                    {
                        len = rdr.ReadToEnd().Length;
                    }
                }
            }
        }
        catch (Exception err)
        {
            throw new Exception("Error saving file from URL:" + err.Message, err);
        }

        return len;
    }

Upvotes: 1

Petr Janeček
Petr Janeček

Reputation: 38444

Selenium is lousy when working with downloads. Clicking the link will get you into trouble.

You could, however, make a request using HttpURLConnection, Apache HttpComponents (or maybe just a file get through URL) for the link specified and assert a 200 OK response. Or try to get the file - this is my favourite tool for this with Selenium.

Upvotes: 1

Related Questions