puppeteer произвольные зависания
Я использую php exec под win для вызова кукольника и сталкиваюсь с остановкой его работы, выглядит это как открытая пустая вкладка в браузере и всё. Если запустить тест напрямую из cmd (там ошибки показывает) или перезапустить скрипт, то всё нормально отрабатывает. У меня 2 вопроса: 1) может что не так с кодом, 2) если эти зависания не обойти, может этих проблем нет у playwright или таймаут сделать для перезапуска на стороне кукольника или php?
вот кусок кода, который вызывает остановки произвольные:
var pagess = [];
for(var ii = 0; ii < links.length; ++ii)
{
pagess[ii] = await browser.newPage();
//закроет Alert и ему подобные окна
pagess[ii].on('dialog', async dialog =>
{
await dialog.accept();
});
//---------------------------------
//запретить загрузку файлов (может перестать работать после обновления кукольника)
await pagess[ii]._client.send
(
'Page.setDownloadBehavior',
{
behavior: 'deny',
},
);
//--------------------------------------------------------------------------------
pagess[ii].setDefaultTimeout(30000);
var newPage = await pagess[ii].goto(links[ii], {waitUntil: 'domcontentloaded'}).catch(e => void 0);
if(newPage)
{
await pagess[ii].waitForSelector('body');
var text = await pagess[ii].evaluate
(
() =>
{
var e = '';
var b = document.querySelector('body');
if(b)
{
var f = b.querySelector('footer');
if(f){f.innerHTML = '';}
b.innerHTML = b.innerHTML.replace(new RegExp("><", "g"), '> <');
b = b.innerText;
b = b.replace(new RegExp("\n", "g"), ' ');
e = '{url:' + location.href + '} ' + b;
}
return e;
},
);
console.log(text);
}
}
await browser.close();