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

求助:Selenium Edge Driver无法通过代码打开浏览器扩展页面

问题:Selenium 4 + Edge Driver 无法打开浏览器扩展页面(VB.NET)

环境信息

  • 系统:Windows 11
  • Edge 版本:128.0.2739.42
  • Edge Driver 版本:128.0.2739.42
  • 开发语言:VB.NET

代码示例

Imports OpenQA.Selenium
Imports OpenQA.Selenium.Edge
Imports OpenQA.Selenium.Support.UI

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim options As New EdgeOptions()
        options.AddArgument("--user-data-dir=C:\Users\jasonfan\AppData\Local\Microsoft\Edge\User Data")
        options.AddArgument("--no-sandbox")
        options.AddArgument("--remote-debugging-pipe")
        options.AddArgument("--allow-running-insecure-content")
        options.AddArgument("--ignore-certificate-errors")

        Dim driver As IWebDriver = New EdgeDriver(options)

        driver.Navigate().GoToUrl("chrome-extension://odphnbhiddhdpoccbialllejaajemdio/options.html")
    End Sub
End Class

问题描述

手动访问chrome-extension://odphnbhiddhdpoccbialllejaajemdio/options.html完全正常,但通过Selenium代码导航时无法打开该页面。最初出现ERR_BLOCKED_BY_CLIENT及DevTools监听报错,添加--remote-debugging-pipe参数后错误提示消失,但仍无法打开扩展页面,尝试过忽略证书错误、禁用DevTools、调整日志等级等操作均无效。


解决方案

1. 替换默认用户数据目录

直接使用系统默认Edge用户数据目录,可能因Edge进程占用导致Selenium无法正确加载扩展。建议创建独立的空目录:

' 替换为自定义空目录路径
options.AddArgument("--user-data-dir=C:\Users\jasonfan\AppData\Local\Microsoft\Edge\Selenium_UserData")

注意:目录需为空或未被Edge使用过,避免资源冲突。

2. 显式加载扩展文件

如果是未打包的开发版扩展,通过AddExtension直接加载扩展文件夹:

' 替换为你的扩展文件夹路径
options.AddExtension("C:\Path\To\Your\Extension_Folder")

如果是打包的CRX文件,使用:

options.AddExtension("C:\Path\To\Your\Extension.crx")

3. 等待扩展加载完成

扩展加载需要时间,直接导航可能导致页面未就绪。添加显式等待确保页面就绪:

Dim driver As IWebDriver = New EdgeDriver(options)
' 等待10秒,直到URL包含扩展协议头
Dim wait As New WebDriverWait(driver, TimeSpan.FromSeconds(10))
wait.Until(Function(d) d.Url.StartsWith("chrome-extension://"))

driver.Navigate().GoToUrl("chrome-extension://odphnbhiddhdpoccbialllejaajemdio/options.html")

4. 添加扩展权限参数

添加以下参数确保扩展正常启用:

' 仅启用指定ID的扩展,避免其他扩展干扰
options.AddArgument("--disable-extensions-except=odphnbhiddhdpoccbialllejaajemdio")
' 强制加载指定扩展
options.AddArgument("--load-extension=odphnbhiddhdpoccbialllejaajemdio")
' 允许访问扩展本地资源
options.AddArgument("--allow-access-from-files")

5. 调整远程调试参数

移除--remote-debugging-pipe,改用端口调试模式:

options.AddArgument("--remote-debugging-port=9222")

内容的提问来源于stack exchange,提问作者Jason Fan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:10:01