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

求助:无法运行Selenium WebDriver 3.8.1项目及指定环境运行报错

嘿,我之前也碰到过类似的版本兼容坑,给你几个针对性的排查和解决方向:

针对iMac上Selenium WebDriver 3.8.1运行问题的解决方案

一、先揪出核心的版本兼容冲突

你的组件版本组合其实存在明显的适配问题:

  • Selenium 3.8.1 官方推荐搭配的 GeckoDriver 版本是 0.20.0+,你用的0.19.1和Firefox 58.x的适配性极差,这是大概率导致启动失败的原因
  • Guava 21/22 和 Selenium 3.8.1 不兼容,Selenium 3.8.1 内部依赖的是 Guava 23.0 版本,低版本Guava会触发大量方法调用失败、类加载异常的问题

二、分步修复操作

  1. 升级GeckoDriver到兼容版本
    下载适配macOS(iMac)的GeckoDriver 0.20.1版本(这个版本完美匹配Firefox 58.0.2),替换你当前的0.19.1。记得把GeckoDriver的路径配置到系统PATH环境变量,或者在代码里显式指定绝对路径:

    System.setProperty("webdriver.gecko.driver", "/Users/你的用户名/路径/geckodriver");
    
  2. 统一Guava依赖版本
    如果你用Maven,直接在pom.xml里强制指定Guava 23.0版本,避免依赖冲突:

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>23.0</version>
    </dependency>
    

    用Gradle的话,在build.gradle里添加:

    implementation 'com.google.guava:guava:23.0'
    
  3. 验证Firefox的系统配置
    确保Firefox 58.0.2能正常手动启动,没有损坏。如果代码识别不到浏览器路径,可以显式指定Firefox二进制文件位置:

    FirefoxBinary binary = new FirefoxBinary(new File("/Applications/Firefox.app/Contents/MacOS/firefox"));
    FirefoxOptions options = new FirefoxOptions().setBinary(binary);
    WebDriver driver = new FirefoxDriver(options);
    

三、常见报错的快速定位

如果还是报错,先看具体错误信息:

  • 要是出现SessionNotCreatedException,90%是GeckoDriver和Firefox版本不兼容,按第一步升级即可
  • 要是出现NoSuchMethodError,基本就是Guava版本冲突,按第二步统一版本就能解决

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:04:17