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();

Ответы (0 шт):