使用 Selenium 验证文件下载

发布于 2024-12-18 12:34:49 字数 187 浏览 3 评论 0原文

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

I need to use selenium to verify a download. I need to click on the download file link and check that it is downloadable or not. (Means download is starting or not)
I need to create a simple HTML script for this. But as Selenium does not recognize the 'Save As' dialog box for file download, I am not able to proceed.
Is there any solution within Selenium for this. I cannot use any other 3rd party tool as this is a part of centralized UI testing script.
Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千柳 2024-12-25 12:34:49

我的解决方案(在 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
        }

My solution (in C#) is get the Url of the file to download and any cookie and make the request using 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
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文