2014-10-19 5 views
6

CapserJS를 사용하여 페이지를로드하고 싶지만 해당 페이지에서 Chrome의 http 요청 헤더에서 내 보낸 쿠키를 어떻게 보내면됩니까?CasperJS에서 요청 용 쿠키 설정

등 :

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

답변

6

여러 가지 방법이 있지만 가장 쉬운 PhantomJS가 제공하는 page.addCookie 또는 phantom.addCookie 기능을 사용하는 것입니다,하지만 당신은 도메인 (경로)를 설정해야합니다. 로드 된 페이지에서는 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() { 
    // ... 
});