在过去的版本中需要使用xvfb
分为两种
在120版本左右只需要使用headless:new即可
const browser = await puppeteer.launch({
args: [
`--headless=new`,
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
'--no-sandbox',
'--disable-setuid-sandbox'
],
ignoreHTTPSErrors:true
});
在100左右的版本开始只需要加入headless:chrome即可
const browser = await puppeteer.launch({
args: [
`--headless=new`,
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
'--no-sandbox',
'--disable-setuid-sandbox'
],
ignoreHTTPSErrors:true
});
关于net::ERR_BLOCKED_BY_CLIENT处理
很可能是由于系统版本不同导致的插件加载id变化了
可以使用下面代码截个图看看有没有加载进去
page.goto("chrome://extensions/")
setTimeout(async ()=>{
await page.screenshot({path: 'demo888.png', fullPage: true});
},5000)
目前获取id我没有找到特别好的办法,只能在插件的background.js中再打注入通过chrome插件的api来实现自动唤醒了
chrome.tabs.create({ url: chrome.runtime.getURL('index.html') });