用Watin下载文件

时间:2011-05-27 11:24:13

标签: firefox download watin

如何使用watin下载文件?我经常搜索并尝试但我无法得到它。 我只想点击下载并保存的链接。我使用了我发现的例子但没有成功。问题是我使用“WaitUntilFileDownloadDialogIsHandled(15)”但是15秒传递并抛出异常:WatiN.Core.Exceptions.WatiNException:15秒后没有显示对话框。

这是代码:

FileDownloadHandler download = new FileDownloadHandler("C:/Development/Test/Downloads/" + "excel" + ".xls");
            using (new UseDialogOnce(browser.DialogWatcher, download))
            {
                browser.Button(Find.ById("id_of_the_button")).ClickNoWait();
                download.WaitUntilFileDownloadDialogIsHandled(15);
                download.WaitUntilDownloadCompleted(150);                
                browser.RemoveDialogHandler(download);
            }

请帮忙!

2 个答案:

答案 0 :(得分:2)

我确实发现了一个困扰我的问题

FileDownloadHandler handler = new FileDownloadHandler(@"c:\temp\file.csv");
browser.DialogWatcher.CloseUnhandledDialogs = false;
using (new UseDialogOnce(browser.DialogWatcher, handler))
{
    browser.Link(Find.ByText("July2011")).Click();
    handler.WaitUntilFileDownloadDialogIsHandled(15);
    handler.WaitUntilDownloadCompleted(240);
}

请注意包含“CloseUnhandledDialogs = false”行。我的保存对话框弹出窗口立即消失,我花了很长时间才意识到发生了什么。

答案 1 :(得分:0)

我使用了以下完全正常的代码片段

FileDownloadHandler download = new FileDownloadHandler("C:\\Development\\Test\\Downloads\\" + "excel" + ".xls");
browser.AddDialogHandler(download);
browser.Button(Find.ById("id_of_the_button")).ClickNoWait();
download.WaitUntilFileDownloadDialogIsHandled(15);
download.WaitUntilDownloadCompleted(150);                
browser.RemoveDialogHandler(download);

我使用的代码片段的唯一区别是我使用了带有转义字符的反斜杠,并且我添加并删除了没有使用块的DialogHandler。

~Ashish Narmen