В этой статье рассматривается тема сохранения и загрузки сеанса. Или лучше сохранить файлы cookie после входа в систему и перезагрузить файлы cookie после закрытия сеанса кукловода. Это означает, что статья содержит следующие шаги.

Скрипт альфа:

1. Откройте страницу и войдите на сайт

2. Сохраните файлы cookie в файл json и закройте его.

Скрипт бета:

3. Откройте новую страницу

4. Загрузите файлы cookie предыдущего сеанса.

5. Перенаправление на нужную страницу после входа в систему.

Чтобы выполнить этот шаг, следуйте следующему сценарию:

Код для альфа-скрипта:

const puppeteer = require(‘puppeteer’);
let browser = await puppeteer.launch({
  headless: this.head,
  args: [
   ‘ — no-sandbox’,
   ‘ — disable-setuid-sandbox’,
   ‘ — use-fake-ui-for-media-stream’,
   ‘ — disable-audio-output’,
   ‘ — disable-features=IsolateOrigins’,
   ‘ — disable-site-isolation-trials’,
 ],
});
let page = await browser.newPage();
await page.goto("https://www.ebay.com", {timeout: 500000});
// login procedure
await page.type("input#username", '[email protected]');
await page.type("input#password", 'thisIsThePass0Wrd');
await page.click("div#loginButton");
await this.page.waitForTimeout(2000)
// save cookise:
const cookies = await page.cookies()
console.log("The cookies: ", cookies);
fs.writeFile(
       'cookies.json',
       JSON.stringify(cookies, null, 2), 
       function(err) {
                      if (err) throw err;
                      console.log('Write cookies complet');
                     }
);
browser.close();

После выполнения этого скрипта вы должны найти файл cookie.json, содержащий сохраненные файлы cookie страницы после того, как был запущен вход на страницу.

Если вы хотите перезагрузить страницу с сеансом входа в систему, вы можете просто использовать следующее:

const puppeteer = require(‘puppeteer’);
let browser = await puppeteer.launch({
  headless: this.head,
  args: [
   ‘ — no-sandbox’,
   ‘ — disable-setuid-sandbox’,
   ‘ — use-fake-ui-for-media-stream’,
   ‘ — disable-audio-output’,
   ‘ — disable-features=IsolateOrigins’,
   ‘ — disable-site-isolation-trials’,
 ],
});
let page = await browser.newPage();
// load the cookies from the file
const cookiesString = fs.readFileSync('./cookies.json', 'utf8');
const cookies = JSON.parse(cookiesString);
console.info("Google - Setting cookies")
await page.setCookie.apply(page, cookies);

// load the page you want to go to after the login
await page.goto("https://ebay.com/dashboard",{waitUntil: ['networkidle2']});
// here you can do what ever you want with the session the page will use the login sesseion
...
// When you are done just close the browser again.
await browser.close();

Вот и все. Я надеюсь, что это помогло. Удачного кодирования.