You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用webdriver访问Chrome扩展出现ERR_BLOCKED_BY_CLIENT如何解决?

问题原因

Chrome出于安全限制,默认禁止Selenium启动的自动化浏览器实例访问chrome-extension://协议的页面,同时Selenium默认启动的是无本地用户配置的干净浏览器实例,不会加载你本地已安装的OneTab扩展,两者共同导致了ERR_BLOCKED_BY_CLIENT报错。

解决方案

按如下步骤修改配置即可解决:

  • 配置Chrome启动参数,加载OneTab扩展并添加白名单
    你需要先获取本地OneTab扩展的安装路径:在Chrome地址栏输入chrome://version,找到「个人资料路径」对应目录,进入该目录下的Extensions/chphlpgkkbolifaimnlloiipkdnihall文件夹,对应版本号的文件夹路径就是扩展路径。
    修改后的代码示例:
import { Builder, until } from "selenium-webdriver";
import { Options } from "selenium-webdriver/chrome.js";

async function runScript() {
    const chromeOptions = new Options();
    // 允许访问扩展类URL
    chromeOptions.addArguments("--extensions-on-chrome-urls");
    // 将OneTab扩展ID加入访问白名单
    chromeOptions.addArguments("--whitelisted-extension-id=chphlpgkkbolifaimnlloiipkdnihall");
    // 替换为你本地实际的OneTab扩展路径
    chromeOptions.addArguments("--load-extension=/你的扩展路径");
    // 也可使用addExtensions加载crx文件:chromeOptions.addExtensions("./onetab.crx");

    const browser = await new Builder()
        .forBrowser("chrome")
        .setChromeOptions(chromeOptions)
        .build();

    try {
        await browser.get(
            "chrome-extension://chphlpgkkbolifaimnlloiipkdnihall/onetab.html"
        );
        // 修正原代码的等待条件错误,替换为匹配OneTab页面标题
        await browser.wait(until.titleContains("OneTab"), 5000);
        // 此处添加后续导出操作代码
    } finally {
        await browser.quit();
    }
}

runScript();
  • 备选方案:使用本地Chrome远程调试模式
    上述配置不生效时可以用此方案:
  1. 关闭所有Chrome进程后,命令行启动Chrome时添加--remote-debugging-port=9222参数,启动后手动确认OneTab可以正常打开,再修改Selenium配置连接该调试实例:
const chromeOptions = new Options();
chromeOptions.debuggerAddress("127.0.0.1:9222");
// 后续Builder配置同上,不需要再配置扩展加载和白名单参数

这个方案使用你日常使用的Chrome配置,不会触发扩展访问限制。

内容的提问来源于stack exchange,提问作者Elf Sternberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:09:01