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

使用JDK 15和Selenium 3.141.59时出现The type packages is not accessible错误,请求技术解决指导

解决JDK 15 + Selenium 3.141.59的"The type packages is not accessible"错误

我来帮你一步步排查和解决这个问题,你的代码里有几个关键问题引发了这个错误,咱们逐个拆解修复:

1. 先修复代码结构的基础错误

你把System.setProperty语句直接写在了类的顶层(方法外面),这在Java里是完全不合法的——类的顶层只能定义成员变量、方法、构造器这类元素,执行性语句必须放在方法内部。把这行代码移到main方法里:

package xyz;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Test {
    public static void main(String[] args) {
        // 将系统属性设置移到main方法内部
        System.setProperty("webdriver.gecko.driver","C:\\Users\\rutuj\\OneDrive\\Desktop\\New folder\\Drivers\\gecko.exe");
        WebDriver driver=new FirefoxDriver();
    }
}

2. 修正Firefox驱动的系统属性名

你写错了驱动配置的属性名称:设置GeckoDriver的正确属性名是webdriver.gecko.driver,而不是webdriver.firefox.FirefoxDriver——这个错误不仅会导致驱动无法加载,还可能间接触发类访问权限的报错。

3. 解决JDK 9+模块系统的访问限制

JDK 15采用了Java平台模块系统(JPMS),但Selenium 3.141.59并没有完全适配模块化规范,默认情况下你的代码无法访问Selenium的内部包,这才是"The type packages is not accessible"错误的核心原因。你有两种实用的解决方式:

方式一:使用非模块化的类路径(推荐,简单快捷)

如果你的项目不是模块化项目(没有module-info.java),确保把Selenium的jar包放在**类路径(classpath)**下,而非模块路径(modulepath)。在IDE(比如IntelliJ/Eclipse)里,将Selenium依赖的路径类型设置为classpath即可。

方式二:添加模块访问参数(适合必须用模块路径的场景)

如果一定要使用模块路径,需要在编译和运行时添加--add-modules参数,允许你的代码访问Selenium相关模块:

  • 编译命令示例:javac --add-modules org.openqa.selenium.core,org.openqa.selenium.firefox -cp selenium-java-3.141.59.jar Test.java
  • 运行命令示例:java --add-modules org.openqa.selenium.core,org.openqa.selenium.firefox -cp .;selenium-java-3.141.59.jar xyz.Test
    (Windows系统用;分隔类路径,Linux/macOS用:)

4. 最后验证驱动文件

确认你的gecko.exe是与当前Firefox浏览器版本兼容的GeckoDriver,同时尽量把驱动放在无空格、无特殊字符的路径下(如果路径有空格,建议用引号包裹路径,或者迁移驱动到更简洁的路径)。

按照以上步骤修改后,你的自动化测试代码应该就能正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 05:42:48