7

Watinを使用してPDFファイルをダウンロードする例を誰でも提供できますか? SaveAsDialogHandler を試しましたが、わかりませんでした。おそらく、MemoryStream を使用できますか?

ありがとう、

--jb

4

4 に答える 4

4
FileDownloadHandler fileDownloadHandler = new FileDownloadHandler(file.FullName);
using (new UseDialogOnce(ie.DialogWatcher, fileDownloadHandler))
{
    ie.Button("exportPdfButtonId").ClickNoWait();

    fileDownloadHandler.WaitUntilFileDownloadDialogIsHandled(30);
    fileDownloadHandler.WaitUntilDownloadCompleted(200);
}
于 2008-10-14T14:48:45.613 に答える
2

このコードはトリックを行います。UsedialogOnce クラスは WatiN.UnitTests コードにあり、WatiN 1.3 リリースの一部になります (おそらく 10 月 14 日にリリースされる予定です)。

FileDownloadHandler fileDownloadHandler = new FileDownloadHandler(file.FullName); using (new UseDialogOnce(ie.DialogWatcher, fileDownloadHandler)) { ie.Button("exportPdfButtonId").ClickNoWait();

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

}

HTH、Jeroen van Menen 主任開発者 WatiN

于 2008-10-14T14:46:58.940 に答える
1

Acrobat の代わりに Foxit を使用していることを除けば、同じ問題に遭遇しました。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));
于 2008-11-14T22:34:27.703 に答える
0

この投稿を見てください:

WatiNを使用してブラウザでPDFが正常に開かれたかどうかを確認するにはどうすればよいですか?

于 2009-09-23T15:59:47.927 に答える