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

Selenium 4.8.3:如何从本地.cache文件加载驱动及替代WebDriverManager方案?

Selenium 4.8.3 本地缓存驱动版本替代方案

Selenium 4 自带了内置驱动管理功能,完全能替代WebDriverManager,还支持从本地.cache目录读取驱动,不用每次都下载,刚好解决VPN/代理限制导致的连接问题。

核心逻辑

Selenium 4的DriverManager类默认会把驱动缓存到系统用户目录下的.cache/selenium文件夹(Windows对应%USERPROFILE%\.cache\selenium,Linux/macOS对应~/.cache/selenium),和你提到的本地缓存路径一致。只要缓存里有对应版本的驱动,就不会触发下载请求。

指定版本实例化驱动的代码(Edge为例)

不用额外依赖WebDriverManager,直接用Selenium自带API即可:

import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;
import org.openqa.selenium.remote.service.DriverFinder;
import org.openqa.selenium.remote.service.DriverService;

public WebDriver getEdgeDriver() {
    // 你需要的驱动版本
    String targetVersion = "112.0.1722.34";
    EdgeOptions options = new EdgeOptions();
    
    // 从本地缓存查找对应版本的驱动服务
    DriverService edgeService = DriverFinder.getPath(EdgeDriverService.createDefaultService(), targetVersion, options);
    
    return new EdgeDriver(edgeService, options);
}

补充说明

  • 如果缓存里还没有目标版本的驱动,第一次运行还是会尝试下载。你可以手动把对应版本的驱动放到缓存目录的对应子文件夹里,比如Linux下路径大概是~/.cache/selenium/edge/linux64/112.0.1722.34/msedgedriver,根据你的系统和浏览器调整路径即可。
  • 要是你已经知道缓存里驱动的具体路径,也可以直接设置系统属性简化代码:
    import org.openqa.selenium.edge.EdgeDriver;
    import org.openqa.selenium.edge.EdgeOptions;
    
    public WebDriver getEdgeDriver() {
        // 直接指定本地缓存里的驱动路径
        System.setProperty("webdriver.edge.driver", "/home/yourname/.cache/selenium/edge/linux64/112.0.1722.34/msedgedriver");
        return new EdgeDriver(new EdgeOptions());
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:05:08