2008-10-13 8 views
7

क्या कोई भी वाटिन का उपयोग करके पीडीएफ फाइल डाउनलोड करने और प्रदान करने का उदाहरण दे सकता है? मैंने SaveAsDialogHandler की कोशिश की लेकिन मैं इसे समझ नहीं पाया। शायद एक मेमोरीस्ट्रीम का इस्तेमाल किया जा सकता है?वाटिन और पीडीएफ

धन्यवाद,

--jb

उत्तर

2

इस कोड चाल करेंगे। प्रयुक्तियलऑनेंस क्लास WatiN.UnitTests कोड में पाया जा सकता है और WatiN 1.3 रिलीज का हिस्सा होगा (जिसे शायद 14 अक्टूबर को टोनघ जारी किया जाएगा)।

फ़ाइलडाउनलोड हैंडलर फ़ाइलडाउनलोड हैंडलर = नई फ़ाइलडाउनलोड हैंडलर (फ़ाइल.फुलनाम); (नया उपयोग DialogOnce (यानी .DialogWatcher, fileDownloadHandler)) { यानी बटन ("exportPdfButtonId")। ClickNoWait();

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

}

HTH, जेरोन वान Menen लीड डेवलपर Watin

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

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

मैं सिर्फ यह एक ही मुद्दे में भाग गया, सिवाय मैं एक्रोबेट के बजाय 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));