上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 李恒道 - 

关于在puppeteer无头模式下加载插件及net::ERR_BLOCKED_BY_CLIENT错误处理

[复制链接]
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2024-6-5 15:57:04 | 显示全部楼层 | 阅读模式

    在过去的版本中需要使用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') });
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表