загрузка файла с помощью Watin - PullRequest
3 голосов
/ 27 мая 2011

Как я могу скачать файл с 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);
            }

Пожалуйста, помогите!

Ответы [ 3 ]

2 голосов
/ 07 сентября 2011

Я обнаружил одну проблему, которая мучила меня

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".Всплывающее диалоговое окно сохранения сразу исчезало, и мне потребовалось целое время, чтобы понять, что происходит.

0 голосов
/ 27 августа 2015

Для загрузки документов с использованием WATIN

 public FileDownloadHandler fileDownloadHandler;

 /*CLICK ON THE FILE LINK TO DOWNLOAD..IT WILL PROMPT FOR FILE DOWNLOAD DIALOG..TO HANDLE THAT DIALOG USE THE BELOW CODE*/

  fileDownloadHandler = new FileDownloadHandler(//THE PATH IN WHICH YOU DOWNLOAD DOCUMENTS//);
    try
    {
        using (new UseDialogOnce(ie.DialogWatcher, fileDownloadHandler))
        {                                               
          download();
        }            
    }
    catch (WatiN.Core.Exceptions.WatiNException ex)
    {
      download();
    }
    public void download()
    {
         try
        {
            fileDownloadHandler.WaitUntilDownloadCompleted(8);
        }
        catch (WatiN.Core.Exceptions.WatiNException ex)
        {
            download();
        }
    }
0 голосов
/ 30 мая 2011

Я использовал следующий фрагмент кода, который работал абсолютно нормально

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);

Единственное отличие в фрагменте кода, который я использовал, заключался в том, что я использовал обратную косую черту с escape-символом и что я добавил и удалилDialogHandler без использования блока.

~ Ашиш Нармен

...