Вы можете обработать исключение тайм-аута в блоке перехвата и затем сделать снимок экрана.Здесь я использовал domcontentloaded вместо networkidle, так как сервер все еще обслуживает клиента.Пример кода: -
await page.goto(pageUrl, { waitUntil: ['domcontentloaded'], timeout: testTimeout }).catch((err) => {
console.log(err);
});
await page.screenshot({path: 'example.png'});