如何在Chrome 139及以上版本中使用Playwright加载扩展?
在Chrome 139+版本中使用Playwright加载扩展的解决方案
无需切换到CFT(Chrome for Testing)或Chromium,直接使用官方Chrome 139+版本时,可通过以下配置在Playwright中加载扩展:
核心配置逻辑
结合Chrome的实验特性与Playwright的启动参数,对齐Selenium的可行方案:
- 启用
enableExtensionTargets实验特性,解锁扩展加载权限 - 保留
--disable-features=DisableLoadExtensionCommandLineSwitch参数,绕过Chrome 137+对--load-extension的限制 - 排除Playwright默认的
--disable-extensions-except参数,避免扩展被禁用
代码示例
JavaScript
const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ args: [ '--disable-features=DisableLoadExtensionCommandLineSwitch', '--load-extension=/绝对路径/到/你的/解压后扩展文件夹' ], ignoreDefaultArgs: ['--disable-extensions-except'], experimental: { enableExtensionTargets: true } }); const context = await browser.newContext(); const page = await context.newPage(); // 执行你的页面操作逻辑 await browser.close(); })();
Python
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch( args=[ "--disable-features=DisableLoadExtensionCommandLineSwitch", "--load-extension=/绝对路径/到/你的/解压后扩展文件夹" ], ignore_default_args=["--disable-extensions-except"], experimental={"enableExtensionTargets": True} ) context = browser.new_context() page = context.new_page() # 执行你的页面操作逻辑 browser.close()
注意事项
- 扩展必须是本地已解压的文件夹,若为CRX格式需先手动解压
- 路径需使用绝对路径,避免因相对路径导致加载失败
- 该方案依赖Chrome的实验特性,未来版本可能存在变更风险,需关注Chrome官方更新
内容的提问来源于stack exchange,提问作者Harshit Pal
相关产品推荐
相关产品推荐

