У меня есть работник службы, который зарегистрирован на
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.bundle.js').then(registration => {
console.log('Service worker was registered');
}).catch(error => {
console.log('Registration failed: ', error);
});
}
Фактический работник сервиса регистрирует свои события install
и activate
с помощью регулярных вызовов console.log (), все это работает как положено.
Однако, когда дело дошло до автоматизации тестирования, решение Headless Chrome / puppeteer не работает, как ожидалось, сервисный работник не installed
(событие установки не происходит). Итак, вопрос в том, существует ли какой-либо особый способ тестирования страниц с работниками сферы обслуживания с помощью Headless Chrome / puppeteer ?
Кукольник код:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ args: ['--no-sandbox']});
const page = await browser.newPage();
page.on('console', msg => console.log('PAGE LOG:', msg.text()));
await page.goto('https://***.com', { waitUntil: 'networkidle0' });
await page.waitFor(1*4000);
console.log('Before reload');
await page.reload({ waitUntil: 'networkidle0' });
await page.screenshot({path: 'public/vidi.png'});
await browser.close();
})();
Ссылки: