2014-10-19 20 views
6

için tanımlama bilgisi ayarla CapserJS kullanarak bir sayfa yüklemek istiyorum, ancak bu sayfada chrome'un http isteği üstbilgisinden verilen tanımlama bilgilerini nasıl gönderebilirim?CasperJS

gibi:

"ALT = _2AkMjHt3gf8NhqwJRmPkQzG_qZIp_yA3EiebDAHzsJxJTHmMJ7IUyLkMN2K7WzRJvm-Tv3YY0xyZo; SUBP = 0033WrSXqPxfM72-Ws9jqgMF55529P9D9WhCT_2hbJ1W1Cc4xfF-mFPo;"

cevap

6

birden çok yolu vardır, fakat en kolay PhantomJS sağlar page.addCookie veya phantom.addCookie fonksiyonlarını kullanmak olacaktır, ancak doğrulama (ve yol) ayarlamak gerekir. page.addCookie'un yüklü bir sayfada yapılması gerektiğini, phantom.addCookie ise daha önce yapılabileceğini unutmayın.

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

yanımda çalışmıyor – Awakening

+0

de benim için çalışan değil :( – user2518430

+1

bazı insanlar neden user2518430 @ Hiçbir fikrim yok bununla ilgili problem, ama 'domain' özelliğinin çok önemli olduğunu söyleyebilirim. [Here] (https://gist.github.com/artjomb/eead7b3da73d138be12de5681aa95b80) benim için çalıştığı örnek bir betiktir. 'addCookie' çağrısı ve bir fark olup olmadığını görmeden. –

1

Böyle doğrudan çerez başlıklarını ayarlamak için deneyebilirsiniz:

casper.start().thenOpen('http://yoururl', { 
    headers:{ "Cookie" : "CookieName=cookieValue" } 
    }, function() { 
    // ... 
});