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