2013-09-13 3 views
1

У меня есть очень простой скрипт casperjs, чтобы посетить несколько страниц и сделать скриншоты некоторых элементов. Проблема в том, что после первой загрузки эти страницы показывают некоторое оверлейное окно, которое мне определенно не нужно на моем скриншоте. После отображения оверлея он устанавливает cookie (prefs: {"dv": "1"}), которые препятствуют отображению этого наложения при загрузке следующей страницы.Как установить cookie в casperJS

Таким образом, мой план состоял в том, чтобы установить эту готовность через casperJS перед загрузкой страницы. Но по какой-то причине он не работает, и я даже не уверен, что правильно его установлю. Вот несколько вариантов я пытался до сих пор:

var casper = require('casper').create(); 

casper.start(url, function() { 
document.cookie="prefs={\"dv\":\"1\"}"; 
this.captureSelector(filename + '.png', 'div#main.contentFrame'); 
}); 

casper.run(); 

или с

this.page.setCookies("prefs={\"dv\":\"1\"}") 

и даже

phantom.addCookie({ 
    'name': 'prefs', 
    'value': {"dv":"1"}, 
    'domain': '.somesite.com' 
}); 

Что такое правильный путь?

ответ

1

Возможно, страница не указана Cookie.

Вы можете использовать этот же код в load.started прослушиватель событий.

Также добавьте скрипт evaluate, чтобы проверить наличие файла cookie на каждом этапе загрузки страницы. Это может помочь.

0

Вы можете напрямую отправить заголовок Cookie, как это:

casper.start().thenOpen('http://yourUrl', { 
    headers:{ "Cookie" : "CookieName=cookieValue" } 
    }, function() { 
    // ... 
}); 
Смежные вопросы