При попытке перейти на подстраницу с помощью метода Кукловода goto
я заметил, что информация о файлах cookie не сохраняется должным образом между навигациями.
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
await page.goto('http://www.example.com/Summary.aspx?sid=100-013-030);
await page.screenshot({path: 'example1.png'});
await page.goto('http://www.example.com/DetailInfo.aspx?did=af902cb3');
await page.screenshot({path: 'example2.png'});
await browser.close();
});
В приведенном выше коде после второго вызова goto
сгенерированный файл example2.png
представляет собой скриншот целевой страницы Summary; что указывает на тихую ошибку. И наоборот, при навигации вручную в самом браузере Chrome копирование и вставка ссылки DetailInfo
в новую вкладку открывает нужную страницу без проблем.
После дальнейшего изучения я заметил, что веб-сайт хранит cookie с идентификатором сеанса в кэше браузера, но в чем разница между ручным подходом и использованием Puppeteer, который создает это несоответствие?