2014-10-19 9 views
6

में अनुरोध के लिए कुकी सेट करें मैं कैप्सरजेएस का उपयोग करके एक पृष्ठ लोड करना चाहता हूं, लेकिन मैं उस पृष्ठ पर क्रोम के http अनुरोध शीर्षलेख से निर्यात की गई कुकी कैसे भेज सकता हूं?CasperJS

जैसे:

"उप = _2AkMjHt3gf8NhqwJRmPkQzG_qZIp_yA3EiebDAHzsJxJTHmMJ7IUyLkMN2K7WzRJvm-Tv3YY0xyZo; SUBP = 0033WrSXqPxfM72-Ws9jqgMF55529P9D9WhCT_2hbJ1W1Cc4xfF-MFPO,"

उत्तर

6

वहाँ कई तरीके हैं, लेकिन सबसे आसान page.addCookie या phantom.addCookie कार्य करता है जो PhantomJS प्रदान करता है का उपयोग करने के होगा, लेकिन आप डोमेन (और पथ) स्थापित करने के लिए होगा। ध्यान रखें कि page.addCookie को लोड किए गए पृष्ठ पर किया जाना चाहिए जबकि phantom.addCookie पहले किया जा सकता है।

var cookie = "someCookieName=Value; otherName=Value"; 
var domain = "example.com"; 
cookie.split(";").forEach(function(pair){ 
    pair = pair.split("="); 
    phantom.addCookie({ 
     'name': pair[0], 
     'value': pair[1], 
     'domain': domain 
    }); 
}); 

casper.start("http://example.com", function(){ 
    // check that cookie was indeed set: 
    this.capture("screen.png"); 
}).run(); 
+0

मेरी तरफ पर काम नहीं कर – Awakening

+0

भी मेरे लिए काम नहीं :( – user2518430

+1

@ user2518430 मुझे पता नहीं है कि क्यों कुछ लोगों को एक है इसके साथ समस्या, लेकिन मैं कह सकता हूं कि 'डोमेन' संपत्ति बहुत महत्वपूर्ण है। [यहां] (https://gist.github.com/artjomb/eead7b3da73d138be12de5681aa95b80) एक उदाहरण स्क्रिप्ट है जहां यह मेरे लिए काम करती है। एक स्क्रीनशॉट बनाएं 'addCookie' कॉल और एक यह देखने के बिना कि कोई अंतर है या नहीं। –

1

आप इस तरह सीधे कुकी हेडर स्थापित करने के लिए कोशिश कर सकते:

casper.start().thenOpen('http://yoururl', { 
    headers:{ "Cookie" : "CookieName=cookieValue" } 
    }, function() { 
    // ... 
}); 
संबंधित मुद्दे