я сделал следующее из терминала узла:
> var Nightmare = require('nightmare')
undefined
> var nightmare = Nightmare({show:true})
undefined
> nightmare.
... goto('https://google.com').
... cookies.set('foo', 'bar').
... cookies.get().
... then((cookies) => {
... console.log(JSON.stringify(cookies, null, 4))
... })
Promise { <pending> }
> [
{
"name": "NID",
"value": "96=qo1qY9LTKh1np4OSgiyJTi7e79-_OIoIuc71hnrKWvN1JUnDLJqZlE8u2ij_4mW0-JJhWOCafo5J0j-YkZCFt8H2VHzYUom4cfEd2QLOEsHmAcT2ACx4a5xSvO0SZGZp",
"domain": ".google.de",
"hostOnly": false,
"path": "/",
"secure": false,
"httpOnly": true,
"session": false,
"expirationDate": 1502733434.077271
},
{
"name": "CONSENT",
"value": "WP.25d07b",
"domain": ".google.de",
"hostOnly": false,
"path": "/",
"secure": false,
"httpOnly": false,
"session": false,
"expirationDate": 2145916800.077329
},
{
"name": "foo",
"value": "bar",
"domain": "www.google.de",
"hostOnly": true,
"path": "/",
"secure": false,
"httpOnly": false,
"session": true
}
]
nightmare.cookies.set('key', 'value')
действительно правильный способ использовать его, как вы можете увидеть в моем результирующем объекте. Возможно, https://mail.yandex.ru не принимает ваш файл cookie, потому что он недействителен. Пожалуйста, сделайте то же самое и отредактируйте свой вопрос, чтобы включить ваши результаты.
Редактировать: По-видимому, OP должен хранить файлы cookie, чтобы он мог использовать их в другом экземпляре Nightmare. Это может быть достигнуто, как это:
var Nightmare = require('nightmare')
var storedCookies // This is where we will store the cookies. It could be stored in a file or database to make it permanent
// First instance:
var nightmare1 = Nightmare({show: true})
nightmare1.
goto('https://google.com').
cookies.get().
then((cookies) => {
storedCookies = cookies
})
// Second instance:
var nightmare2 = Nightmare({show: true})
for(var i = 0; i < storedCookies.length; i++)
nightmare2.
cookies.set(storedCookies[i].name, storedCookies[i].value)
nightmare2.
goto('https://google.com')
Согласно [это] (https://github.com/segmentio/nightmare#cookiessetname-value) 'cookies.set()' должен работать. Что именно вы подразумеваете под «это не работает»? Вы пытались получить ваш файл cookie сразу после его установки, чтобы вы могли увидеть, работает ли он? – Benni
Можете ли вы показать мне пример с .cookies.set() и .cookies.get()? – happinapps
Конечно, просто дай мне несколько минут. – Benni