2011-10-03 14 views
11

मैं एक वेब ब्राउज़र अनुकरण और स्वचालित करने के लिए WebKitDotNet का उपयोग कर रहा हूं। यह वास्तव में निफ्टी है और ज्यादातर मामलों में काम करता है। हालांकि, जब मैं इस कोड को लागू करने की कोशिश करते हैं, वेबकिट एक डाउनलोड ट्रिगर नहीं करता:वेबकिटडॉटनेट का उपयोग कर सी # में वेबकिट ब्राउज़र के माध्यम से फ़ाइल डाउनलोड करना संभव है?

WebKitBrowser _b = null; 

private void button1_Click(object sender, EventArgs e) 
{ 
    _b = new WebKitBrowser(); 
    _b.DownloadBegin += new FileDownloadBeginEventHandler(b_DownloadBegin); 
    _b.Error += new WebKitBrowserErrorEventHandler(_b_Error); 
    _b.AllowDownloads = true; 
    _b.Navigate("http://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo.zip/download"); 
} 

void _b_Error(object sender, WebKitBrowserErrorEventArgs e) 
{ 
    MessageBox.Show("error!"); 
} 

void b_DownloadBegin(object sender, FileDownloadBeginEventArgs e) 
{ 
    MessageBox.Show("hi"); 
} 

न तो "त्रुटि" और न ही "DownloadBegin" घटनाओं आग। मैं उनमें से कम से कम एक ऐसा करने की अपेक्षा करता हूं - क्या ऐसी कोई सेटिंग है जिसे मैं याद कर रहा हूं?

संपादित करें: मुझे पता है कि यह एक पुराना सवाल है, लेकिन यहां अपडेट है। जब मैंने यह प्रश्न लिखा, तो मैं एक ऐसी प्रक्रिया को स्वचालित करने की कोशिश कर रहा था जिसके लिए एक इंसान की आवश्यकता होती है - प्रति दिन एक बार - वेबसाइट पर लॉग इन करने के लिए, प्रमाण-पत्र प्रदान करें, और डाउनलोड लिंक पर क्लिक करें। हम उम्मीद कर रहे थे कि इस काम को करने वाले गरीब व्यक्ति के लिए एकता से छुटकारा पाने के लिए इस प्रोग्रामेटिक रूप से ऐसा करने में सक्षम होना चाहिए।

दुर्भाग्यवश, WebKitDotNet इस कार्य में सफल नहीं हुआ। हालांकि, वेबकिट आधारित ब्राउज़र में, आप लिंक पर क्लिक करके लिंक पर क्लिक करके एम्बेडेड वेबकिट डॉटनेट पर डाउनलोड को ट्रिगर कर सकते हैं। मेरा अनुमान है कि WebKitDotNet के भीतर कुछ घटना खो दी है। अगर कोई इसका परीक्षण करना चाहता है, तो आप परीक्षण के लिए Sourceforge डाउनलोड लिंक का उपयोग कर सकते हैं।

मेरी टीम के लोगों में से एक ने अंततः "IMacros" नामक एक इंटरनेट एक्सप्लोरर स्वचालन उपकरण का उपयोग करके इस समस्या को हल किया। हमने इस उत्पाद का चयन किया क्योंकि 1) हम गारंटी दे सकते हैं कि प्रोग्राम चलाने वाले प्रत्येक कंप्यूटर पर IE स्थापित किया गया था, और 2) IMacros वेबसाइट से ईवेंट को सही ढंग से प्राप्त कर सकता है और फ़ाइल डाउनलोड ट्रिगर कर सकता है।

https://github.com/webkitdotnet/webkitdotnet/issues/7

चूंकि नजर में कुछ मुद्दे हैं, यह होगा:

+0

क्या होगा यदि आप सीधे डाउनलोड यूआरएल का उपयोग करते हैं: [link] http://downloads.sourceforge.net/project/webkitdotnet/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo .zip? r = & ts = 1318524392 और use_mirror = sunet मुझे लगता है कि वेबकिट ब्राउज़र पेज पर जावास्क्रिप्ट के कारण 5 सेकंड टाइमआउट को ठीक से संभाल नहीं रहा है। –

+0

मैंने डाउनलोड पेज की जांच की है और यह वास्तविक डाउनलोड यूआरएल को रीफ्रेश करने के लिए जावास्क्रिप्ट का उपयोग नहीं करता है। यह मेटा http-equiv = "ताज़ा करें" टैग का उपयोग करता है। इससे ब्राउज़र को वास्तविक डाउनलोड यूआरएल में रीफ्रेश करने का कारण बनता है जो स्पष्ट रूप से नहीं हो रहा है। मुझे परियोजना की वेबसाइट पर इसका उल्लेख करने की कोई सीमा नहीं मिली। –

+0

असल में कारण मैं प्रत्यक्ष डाउनलोड का उपयोग नहीं करता हूं यह है कि डाउनलोड करने की अनुमति देने के लिए कुछ साइटें (स्रोतफोर्ज नहीं, बल्कि अन्य साइटों) को कुकीज और सत्रों की जटिल बातचीत की आवश्यकता होती है। इसलिए मैंने समस्या का प्रदर्शन करने के लिए एक सार्वजनिक डोमेन ओपन सोर्स साइट का उपयोग करके परीक्षण लिखा, माफ करना अगर यह स्पष्ट नहीं था। –

उत्तर

1

समस्या ट्रैकर पर 24 मार्च, 2011 से एक पोस्ट तारीख, जिस में कहा गया है कि डाउनलोड अभी तक काम नहीं करता है यदि सुविधा को जोड़ा गया तो शायद हल के रूप में चिह्नित किया गया है।

+0

मुझे लगता है कि मैं यह जवाब स्वीकार करूंगा - काश मैं कह सकता हूं कि वे परियोजना को उठाएंगे और इसे ठीक करेंगे लेकिन ओह ठीक है :) –

संबंधित मुद्दे

 संबंधित मुद्दे