Да, по состоянию на 1.7 В Phantom полная обработка файлов cookie включена по умолчанию.Файлы cookie сохраняются в течение всего срока службы процесса.
Если вы хотите сохранить файлы cookie при запуске Phantom, есть опция командной строки cookies-file
, в которой можно указать, гдедля хранения постоянных файлов cookie.
--cookies-file=/path/to/cookies.txt
указывает имя файла для хранения постоянных файлов cookie.
В скрипте страницы можно использовать обычное свойство document.cookie
.Как и в браузерах, это свойство возвращает строку, аналогичную той, которая будет отправлена в заголовке HTTP Cookie:
.
В сценарии Phantom вы можете получить доступ к файлам cookie для страницы (с учетом обычных ограничений источника) черезpage.cookies
, который возвращает объектов .
Вы также можете получить доступ к всем cookie-файлам (из всех доменов), используя phantom.cookies
.
var page = require('webpage').create();
page.open('http://example.com', function (status) {
page.evaluate(function() {
document.cookie; // => "test=test-value;"
});
page.cookies; // => [{
// domain: "example.com",
// expires: "Wed, 08 Jan 2014 00:00:00 GMT"
// httponly: false,
// name: "test",
// path: "/",
// secure: false,
// value: "test-value"
// }]
phantom.cookies; // contains ALL cookies in Phantom's jar
});
Для добавления / редактирования / удаления файлов cookie используйте методы addCookie
, deleteCookie
и clearCookies
для объекта WebPage
или phantom
.
При использовании методов объекта WebPage
вы изменяете только те файлы cookie, которые видны на странице.Доступ к другим доменам заблокирован.
Однако использование файлов cookie phantom
позволяет получить доступ к всем cookie.phantom.addCookie
требуется домен (WebPage.addCookie
предполагает текущий домен, если вы его не указали), а phantom.deleteCookie
удаляет любой cookie, соответствующий указанному имени.