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

如何用SeleniumVBA配置代理服务器以解决Chrome认证弹窗问题

解决SeleniumVBA配置Chrome代理认证问题

你之前修改WebDriver.cls里的MSXML2.ServerXMLHTTP60代理设置是无效的,因为这是SeleniumVBA自身与WebDriver服务通信的代理,不是Chrome浏览器实例的代理配置,所以Chrome依然会弹出认证对话框。

正确的做法是通过ChromeOptions为Chrome浏览器实例配置代理,包含认证信息,具体步骤如下:

方法:使用PAC脚本配置带认证的代理

Chrome本身不支持直接在启动参数中传入代理用户名密码,通过PAC脚本可以将认证信息嵌入代理地址,避免弹出认证框。

完整代码示例

Sub SeleniumChromeProxyAuth()
    Dim driver As New ChromeDriver
    Dim options As New ChromeOptions
    Dim pacScript As String
    Dim proxyServer As String, proxyUser As String, proxyPassword As String
    
    ' 替换为你的代理信息
    proxyServer = "your-proxy-server:port" ' 例如:192.168.1.100:8080
    proxyUser = "your-proxy-username"
    proxyPassword = "your-proxy-password"
    
    ' 构建PAC脚本,嵌入代理认证信息
    pacScript = "function FindProxyForURL(url, host) { " & _
                "return 'PROXY " & proxyUser & ":" & proxyPassword & "@" & proxyServer & "; DIRECT'; " & _
                "}"
    
    ' 将PAC脚本转为Base64编码,避免特殊字符问题
    options.AddArgument "--proxy-pac-url=data:text/plain;base64," & EncodeBase64(pacScript)
    
    ' 启动Chrome浏览器并应用代理配置
    driver.Start "chrome", options
    
    ' 测试访问目标页面
    driver.Get "https://www.example.com"
    
    ' 后续业务逻辑...
    
    ' 关闭浏览器
    driver.Quit
End Sub

' 辅助函数:将字符串转换为Base64编码
Function EncodeBase64(text As String) As String
    Dim bytes() As Byte
    bytes = StrConv(text, vbFromUnicode)
    
    Dim xmlDoc As Object, xmlNode As Object
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    Set xmlNode = xmlDoc.createElement("base64Node")
    
    xmlNode.DataType = "bin.base64"
    xmlNode.nodeTypedValue = bytes
    EncodeBase64 = xmlNode.Text
    
    Set xmlNode = Nothing
    Set xmlDoc = Nothing
End Function

代码说明

  • PAC脚本:通过FindProxyForURL函数指定所有请求使用带认证信息的代理,格式为用户名:密码@代理服务器:端口
  • Base64编码:将PAC脚本转为Base64后通过data:text/plain的方式传递,避免脚本中的特殊字符导致配置失效
  • ChromeOptions:通过AddArgument方法添加代理PAC地址参数,启动Chrome时自动应用该配置

无认证代理的简化配置

如果你的代理不需要认证,直接使用--proxy-server参数即可:

options.AddArgument "--proxy-server=" & proxyServer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:05:47