1

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

4

1 回答 1

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
        }
于 2012-07-25T15:30:06.073 回答