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

Selenium中配置带用户名密码的HTTPS代理失败求助

解决Selenium(Go-tebeka)中带用户名密码的HTTPS代理无法工作的问题

问题核心

Chrome原生不支持通过Selenium Capabilities直接为HTTP/HTTPS代理传递用户名密码,这是常规配置无效的根本原因——SOCKS代理的认证字段仅对SOCKS类型生效,而你的代理是HTTPS类型,配置SOCKS字段完全不匹配。

可行解决方案

方案1:使用Chrome扩展注入代理认证

创建简单的Chrome扩展,自动处理代理认证弹窗并配置代理:

  1. 创建扩展的manifest.json文件:
{
  "manifest_version": 3,
  "name": "Proxy Auth Helper",
  "version": "1.0",
  "permissions": ["proxy", "storage", "tabs", "webRequest", "webRequestAuthProvider"],
  "background": {
    "service_worker": "background.js"
  },
  "host_permissions": ["<all_urls>"]
}
  1. 创建background.js文件:
// 自动处理代理认证弹窗
chrome.webRequest.onAuthRequired.addListener(
  function(details) {
    return {
      authCredentials: {
        username: "Tvh123",
        password: "u1239C"
      }
    };
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

// 配置HTTPS代理
chrome.proxy.settings.set({
  value: {
    mode: "fixed_servers",
    rules: {
      singleProxy: {
        scheme: "https",
        host: "168.80.202.181",
        port: 8000
      },
      bypassList: ["localhost"]
    }
  },
  scope: "regular"
});
  1. 在Go代码中加载该扩展:
import (
    "github.com/tebeka/selenium"
    "github.com/tebeka/selenium/chrome"
)

func main() {
    // ... 初始化driver等前置步骤
    caps := selenium.Capabilities{}
    chromeCaps := chrome.Capabilities{
        Args: []string{
            "window-size=1920x1080",
            // 替换为你的扩展文件夹本地路径
            "--load-extension=/path/to/your/proxy-extension",
        },
    }
    caps.AddChrome(chromeCaps)
    // 此处不再添加Proxy配置,避免冲突
    // ... 启动driver并执行后续操作
}

方案2:使用PAC文件配置代理(需配合认证处理)

创建proxy.pac文件:

function FindProxyForURL(url, host) {
  return "PROXY 168.80.202.181:8000; DIRECT";
}

若你的代理支持URL嵌入认证信息(部分环境可能禁用该方式),可修改为:

function FindProxyForURL(url, host) {
  return "PROXY Tvh123:u1239C@168.80.202.181:8000; DIRECT";
}

然后在Go代码中配置Chrome使用该PAC文件:

caps.AddChrome(chrome.Capabilities{
    Args: []string{
        "window-size=1920x1080",
        // 替换为你的PAC文件本地路径
        "--proxy-pac-url=file:///path/to/your/proxy.pac",
    },
})

注意:若使用无认证的PAC配置,仍需配合方案1的扩展处理认证弹窗。

方案3:本地代理中转(复杂场景可选)

使用mitmproxy等工具搭建本地中转代理,将带认证的远程代理配置到中转工具中,Selenium只需连接本地无认证的代理。此方法需额外工具支持,适合特殊需求场景。

关键注意事项

  • 严格匹配代理类型:你的代理是HTTPS类型,不要配置SOCKS相关字段,避免类型不匹配。
  • Chrome的HTTP/HTTPS代理认证无法通过Selenium的Proxy结构体直接传递,这是Chrome的原生限制,而非tebeka/selenium库的问题。

内容的提问来源于stack exchange,提问作者VY YR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:13:14