Ватин и PDF - PullRequest
       14

Ватин и PDF

7 голосов
/ 13 октября 2008

Может ли кто-нибудь предоставить и пример загрузки PDF-файла с помощью Watin? Я попытался SaveAsDialogHandler, но я не мог понять это. Возможно, можно использовать MemoryStream?

Спасибо

- ДБ

Ответы [ 4 ]

4 голосов
/ 14 октября 2008
FileDownloadHandler fileDownloadHandler = new FileDownloadHandler(file.FullName);
using (new UseDialogOnce(ie.DialogWatcher, fileDownloadHandler))
{
    ie.Button("exportPdfButtonId").ClickNoWait();

    fileDownloadHandler.WaitUntilFileDownloadDialogIsHandled(30);
    fileDownloadHandler.WaitUntilDownloadCompleted(200);
}
2 голосов
/ 14 октября 2008

Этот код поможет. Класс UsedialogOnce можно найти в коде WatiN.UnitTests и станет частью выпуска WatiN 1.3 (который, вероятно, будет выпущен сегодня вечером 14 октября).

FileDownloadHandler fileDownloadHandler = новый FileDownloadHandler (file.FullName); используя (новый UseDialogOnce (т.е. .DialogWatcher, fileDownloadHandler)) { ie.Button ( "exportPdfButtonId") ClickNoWait ();.

fileDownloadHandler.WaitUntilFileDownloadDialogIsHandled(30);
fileDownloadHandler.WaitUntilDownloadCompleted(200);

}

НТН, Йерун ван Менен Ведущий разработчик WatiN

1 голос
/ 15 ноября 2008

Я только что столкнулся с этой же проблемой, за исключением того, что я использую Foxit вместо Acrobat. Я сказал Foxit не запускаться в браузере, затем этот код начал работать просто отлично. Вот полный модульный тест, который должен добиться цели:

        string file = Path.Combine(Directory.GetCurrentDirectory(), "test.pdf");

        using (IE ie = new IE())
        {
            FileDownloadHandler handler = new FileDownloadHandler(file);

            using (new UseDialogOnce(ie.DialogWatcher, handler))
            {
                try
                {
                    ie.GoToNoWait("http://www.tug.org/texshowcase/cheat.pdf");

                    //WatiN seems to hang when IE loads a PDF, so let it timeout...
                    ie.WaitForComplete(5);
                }
                catch (Exception)
                {
                    //Ok.
                }

                handler.WaitUntilFileDownloadDialogIsHandled(30);
                handler.WaitUntilDownloadCompleted(30);
            }

        }

        Assert.That(File.Exists(file));
0 голосов
/ 23 сентября 2009
...