使用Selenium验证文件下载

时间:2011-11-29 06:22:10

标签: html selenium gui-testing

我需要使用selenium来验证下载。我需要单击下载文件链接并检查它是否可下载。 (意味着下载是否开始) 我需要为此创建一个简单的HTML脚本。但是,由于Selenium不承认“另存为”。文件下载对话框,我无法继续。 Selenium中是否有任何解决方案。我不能使用任何其他第三方工具,因为这是集中式UI测试脚本的一部分。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我的解决方案(在C#中)是获取要下载的文件的Url和任何cookie并使用WebClient发出请求:

        var testLink = seleniumDriver.FindElement(By.LinkText("Link to file"));
        var pdfHref = testLink.GetAttribute("href");
        var manage = seleniumDriver.Manage();
        var cookies = manage.Cookies.AllCookies;
        using (var wc = new WebClient())
        {
            foreach (var cookie in cookies)
            {
                var cookieText = cookie.Name + "=" + cookie.Value;
                wc.Headers.Add(HttpRequestHeader.Cookie, cookieText);
            }
            var fileResult = wc.DownloadData(new Uri(pdfHref));
            // or use wc.DownloadString or wc.DownloadFile
            // Do any test required
        }