0

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

我有使用页面中的多个变量生成的链接。当我模拟点击链接下载文件时,我想验证下载弹出框是否显示。

我知道我可以让 JsUnit 为我做到这一点。

有任何想法吗?

4

2 回答 2

1

Selenium 在处理下载时很糟糕。点击链接会给你带来麻烦。

但是,您可以使用 HttpURLConnectionApache HttpComponents(或者可能只是通过URL获取的文件)为指定的链接发出请求并断言200 OK响应。或者尝试获取文件 -这是我最喜欢的 Selenium 工具。

于 2012-04-17T14:06:05.947 回答
1

Thnx to 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;
    }
于 2012-04-18T09:22:51.750 回答