Есть ли способ отловить события сбоя страницы хрома, используя Puppeteer в режиме без головы?
Следующее работает только если не в режиме без головы?:
page.once("error", async () => {
//Do something
});
await page.goto('about:crash');
Я использую безголовый аргумент, чтобы начать кукловод. (Чтобы активировать WebGL)
browser = await puppeteer.launch({
headless: false,
args: [
`--window-size=${width},${height}`,
'--headless'
]
});
Добавлены детали:
Моя цель - проверить поведение моего приложения после сбоя.
Следующее не улавливает ошибку:
const puppeteer = require('puppeteer');
const width = 1920;
const height = 1080;
(async () => {
browser = await puppeteer.launch({
headless: false,
args: [
`--window-size=${width},${height}`,
'--headless'
]
});
page = await browser.newPage();
await page.goto('https://www.google.com/', { waitUntil: 'networkidle2', timeout: 10000 });
console.log('page loaded');
try {
//page.goto('about:crash');
page.goto('chrome://crash/')
} catch (e) {
console.log(`crash has been catched`)
};
})();
И это так, но я получаю отказ от обещания, который делает мой тест Jest неудачным
const puppeteer = require('puppeteer');
const width = 1920;
const height = 1080;
(async () => {
browser = await puppeteer.launch({
headless: false,
args: [
`--window-size=${width},${height}`,
'--headless'
]
});
page = await browser.newPage();
await page.goto('https://www.google.com/', { waitUntil: 'networkidle2', timeout: 10000 });
console.log('page loaded');
page.once("error", async () => {
console.log('crash has been catched')
})
//page.goto('about:crash');
page.goto('chrome://crash/')
})();
Как я могу
- сбой страницы,
- поймать ошибку сбоя
- сделать еще несколько тестов (например,
создание новой страницы, перезагрузка страницы ...)