使用selenium弹出验证下载框

时间:2012-04-16 13:33:22

标签: unit-testing selenium webdriver

我有一个网站,我正在使用selenium进行集成测试。

我在那里使用来自页面的多个变量生成链接。 我想验证下载弹出框是否尽可能显示,当我模拟点击链接下载文件时。

我知道我可以让JsUnit为我做这件事。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用下载时,Selenium很糟糕。点击该链接会让您遇到麻烦。

但是,您可以针对指定的链接发出请求using HttpURLConnectionApache HttpComponents(或者只是文件通过URL)并声明200 OK响应。或者尝试使用Selenium获取文件 - this is my favourite tool

答案 1 :(得分:1)

Thnx对Slanec我已经开始了你的例子。

在调查后我确定了最佳解决方案 沿着这条路线。

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