2012-08-31 42 views
0

我正在处理与我的应用中的WaTin对话框并用Watin保存文件。但是,在保存文件并下载完成后,另一个对话框保持打开状态使用三个按钮。 "Open""Open Folder""Close"在用C#下载完成后关闭对话框在用watin

我想在下载完成时关闭此对话框。

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

请提出任何出路,这

回答

0

我曾遇到类似的问题和一些我观察到的事情

  1. 所有的对话框处理程序遇到了问题,当多个实例的浏览器已打开。当测试运行时只有一个浏览器实例打开时,我很少遇到问题。
  2. 除非从浏览器实例中删除对话框处理程序,否则在下次文件下载尝试期间几乎肯定会失败。

此外,您可能想要尝试增加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); 
} 
0

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

相关问题