使用watin在C#下载完成后关闭对话框

时间:2012-08-31 09:34:22

标签: c# automation nunit watin

我正在我的应用程序中使用WaTin处理对话框并使用Watin保存文件。但保存文件后,下载完成后,另一个对话框仍然打开,有三个按钮。 "Open" "Open Folder" "Close"

我希望在下载完成后关闭此对话框。

 FileDownloadHandler fileDownloadHandler = new FileDownloadHandler("Arslan");
            browser.AddDialogHandler(fileDownloadHandler);
            browser.Button("Save").ClickNoWait();
            fileDownloadHandler.WaitUntilFileDownloadDialogIsHandled(15);
            fileDownloadHandler.WaitUntilDownloadCompleted(200);

请为此建议任何出路

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,我观察到的一些事情是

  1. 当打开多个浏览器实例时,所有对话框处理程序都会遇到问题。当测试运行时只打开一个浏览器实例时,我很少遇到问题。
  2. 除非从浏览器实例中删除对话框处理程序,否则在下一次文件下载尝试期间几乎肯定会失败。
  3. 此外,您可能希望尝试增加WaitUntilFileDownloadDialogIsHandled超时。

    FileDownloadHandler fileDownloadHandler = new FileDownloadHandler(downloadlocation);
    try
    {
        Button button = browser.Button(Find.ByText("Save"));
        browser.AddDialogHandler(fileDownloadHandler);
        button.ClickNoWait();
        fileDownloadHandler.WaitUntilFileDownloadDialogIsHandled(40);
        fileDownloadHandler.WaitUntilDownloadCompleted(200);
    
    }
    catch (Exception excp)
    {
        /// Log exception message
    }
    finally
    {
        /// Remove the dialog handler
        browser.RemoveDialogHandler(fileDownloadHandler);
    }
    

答案 1 :(得分:0)

我在 IE7 下遇到了同样的问题。但是,如果您正在下载多个文件,那么删除处理程序 Ashish 建议无法完成任务,因为删除处理程序只会跳到下一个任务,这将导致下一次迭代出错。
因此,最简单的解决方案是将IE7配置为在下载完成后自动关闭下载窗口。这是通过在下载完成时取消选中" Notify来完成的。 IE7下的选项 - > Intenet options - > Advanced - > Browsing - > Notify when downloads are complete