UnhandledPromiseRejectionWarning: Ошибка: ошибка протокола (Network.setCookies): цель закрыта - невозможно установить файлы cookie - PullRequest
0 голосов
/ 31 мая 2018

В настоящее время у меня возникает проблема, когда Puppeteer падает при использовании метода setCookies.В настоящее время я использую Puppeteer v 1.4.0 (последняя версия на момент написания этой статьи), а также версию Chromium, поставляемую в комплекте с Puppeteer, и вот код, который доставляет мне неприятности:

const puppeteer = require('puppeteer');
const moment = require('moment');
(async () => {
  const browser = await puppeteer.launch(
    {
      headless: false
    }
  );
  const page = await browser.newPage();
  await page.goto('https://google.com');
  const currentUrl = await page.url();
  await browser.close();
  const browser1 = await puppeteer.launch(
    {
      headless: false
    }
  );
  const page1 = await browser1.newPage();
  const cookie = await currentUrl.split("/");
  await page1.setCookie({
    'name': 'samplename',
    'value': cookie[0],
    'domain': 'sampledomain',
    'path': cookie[0] + '/' + cookie[0] + '/' + cookie[0],
    'expires': moment().add(21, 'days').valueOf(),
    'httpOnly': false,
    'secure': true,
    'sameSite': "Lax"
  });
  await page1.goto(currentUrl);
})();

и вот сообщение об ошибке

(node:64704) UnhandledPromiseRejectionWarning: Error: Protocol error (Network.setCookies): Target closed.
    at Promise (/Users/pc/Desktop/Shopify Bot/node_modules/puppeteer/lib/Connection.js:200:56)
    at new Promise (<anonymous>)
    at CDPSession.send (/Users/pc/Desktop/Shopify Bot/node_modules/puppeteer/lib/Connection.js:199:12)
    at Page.setCookie (/Users/pc/Desktop/Shopify Bot/node_modules/puppeteer/lib/Page.js:320:26)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:182:7)
(node:64704) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:64704) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Я какое-то время изучал эту проблему самостоятельно, и несколько источников, кажется, говорятпроблема заключается не в том, что на самом деле не выполняется асинхронное выполнение, однако я полагаю, что все выполняю в асинхронном режиме (однако, поскольку я впервые делаю что-либо асинхронное на NodeJS, я могу делать критические ошибки в суждении).Я попытался проверить Chromium и удалить + переустановить Puppeteer, но ничего не помогло.

1 Ответ

0 голосов
/ 31 мая 2018

Причина, по которой вы получаете сообщение об ошибке, заключается в следующей строке:

'path': cookie[0] + '/' + cookie[0] + '/' + cookie[0],

Она разрешается в https:/https:/https:, что недопустимо для этого свойства.

Попробуйте установить *От 1007 * до '/' или просто не устанавливайте это свойство, и оно будет работать просто отлично.

Подробнее о том, как использовать path , можно прочитать здесь и здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...