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

如何为Selenide库配置代理?解决ChromeDriver下载异常问题

解决Selenide/WebDriverManager下载ChromeDriver时的代理配置问题

看起来你遇到的问题是Maven本身的代理配置已经生效(能正常下载依赖),但Selenide依赖的WebDriverManager在下载ChromeDriver时没走代理,导致UnknownHostException。这是因为Maven的settings.xml只控制Maven自身的依赖拉取,而WebDriverManager是在测试运行阶段通过Java代码发起HTTP请求,需要单独配置代理。

下面是几种可行的解决方案:

1. 通过Maven命令行添加JVM代理参数

直接在你的Maven命令中加入Java系统属性,指定HTTP/HTTPS代理,WebDriverManager会自动读取这些参数:

mvn clean test site -Dhttp.proxyHost=你的代理地址 -Dhttp.proxyPort=代理端口 -Dhttps.proxyHost=你的代理地址 -Dhttps.proxyPort=代理端口

如果代理需要认证,还要追加认证参数:

-Dhttp.proxyUser=用户名 -Dhttp.proxyPassword=密码 -Dhttps.proxyUser=用户名 -Dhttps.proxyPassword=密码

2. 在代码中显式配置WebDriverManager的代理

如果你不想每次都在命令行加参数,可以在测试代码初始化WebDriver前,直接给WebDriverManager指定代理:

import io.github.bonigarcia.wdm.WebDriverManager;

// 在启动浏览器前配置代理
WebDriverManager.chromedriver()
    .proxy("http://你的代理地址:端口")
    // 若代理需要认证,添加以下两行
    .proxyUser("用户名")
    .proxyPass("密码")
    .setup();

这样就能强制WebDriverManager走指定代理下载ChromeDriver。

3. 通过系统环境变量配置

你也可以设置操作系统的环境变量,让WebDriverManager自动读取代理配置:

  • Windows(命令行):
set HTTP_PROXY=http://用户名:密码@代理地址:端口
set HTTPS_PROXY=http://用户名:密码@代理地址:端口
  • Linux/macOS(终端):
export HTTP_PROXY=http://用户名:密码@代理地址:端口
export HTTPS_PROXY=http://用户名:密码@代理地址:端口

设置完成后再运行你的Maven命令即可。

为什么Maven的settings.xml没起作用?

Maven的settings.xml代理配置只服务于Maven自身的依赖下载流程,而WebDriverManager是在测试运行时由Java程序发起的独立HTTP请求,不会读取Maven的代理配置,所以必须单独为它配置代理。

你的报错信息也明确了问题核心:

java.net.UnknownHostException: chromedriver.storage.googleapis.com
io.github.bonigarcia.wdm.WebDriverManagerException: java.net.UnknownHostException: chromedriver.storage.googleapis.com
at io.github.bonigarcia.wdm.WebDriverManager.handleException(WebDriverManager.java:475)
...

这个错误说明WebDriverManager无法解析目标域名,本质是请求未走代理导致无法访问外部网络。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:48:56