gpt4 book ai didi

javascript - 在 Headless Chrome 中安装 Service Worker(通过 puppeteer)

转载 作者:行者123 更新时间:2023-11-29 15:15:18 34 4
gpt4 key购买 nike

我有一个注册的 service worker

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

实际的 service worker 正在使用常规的 console.log() 调用记录其 installactivate 事件,所有这些都按预期工作。

但是,当涉及到测试自动化时,Headless Chrome/puppeteer 解决方案没有按预期工作,service worker 没有安装(安装事件不会发生)。所以,问题是,是否有任何特殊的方法可以使用 Headless Chrome/puppeteer 的服务人员测试页面?

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

链接:

最佳答案

是的,

const browser = await puppeteer.launch({
args: ['--enable-features=NetworkService'],
headless: true,
ignoreHTTPSErrors: true,
});

--enable-features=NetworkService 启用 service worker(实验性)并且在 puppeteer 上下文中(通过 file:///服务)需要 ignoreHTTPSErrors 来克服 service worker 的 https 要求

关于javascript - 在 Headless Chrome 中安装 Service Worker(通过 puppeteer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50073334/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com