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

首次运行Selenium程序遇模块找不到错误,求技术解决方案

解决Selenium运行时模块缺失问题

问题描述

运行以下首个Selenium程序时:

package selenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class FirstSeleniumProject {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\amar\\Documents\\chromedriver\\chromedriver.exe");
        WebDriver chrome = new ChromeDriver();
        
        chrome.get("https://www.google.com");

    }

}

先后出现两个模块缺失错误:

  • Error occurred during initialization of boot layer java.lang.module.FindException: Module processed.commons.exec not found
  • 移除链接https://后,又出现Error occurred during initialization of boot layer java.lang.module.FindException: Module processed.async.http.client not found, required by org.seleniumhq.selenium.remote_driver
    安装TestNG后问题未解决。

解决方案

1. 确保依赖完整且版本兼容

模块缺失本质是依赖包未正确引入或版本不匹配:

  • 如果用Maven,在pom.xml中添加正确的Selenium依赖(以Selenium 4.x为例):
<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.15.0</version>
    </dependency>
</dependencies>
  • 如果用Gradle,在build.gradle中添加:
dependencies {
    implementation 'org.seleniumhq.selenium:selenium-java:4.15.0'
}

执行依赖同步,确保所有关联依赖(包括commons-exec、async-http-client等)都被自动下载。

2. 替换手动驱动配置为WebDriverManager

手动设置驱动路径容易引发路径错误,WebDriverManager能自动管理驱动版本,同时避免部分依赖冲突:
修改代码如下:

package selenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.WebDriverManager;

public class FirstSeleniumProject {

    public static void main(String[] args) {
        WebDriverManager.chromedriver().setup();
        WebDriver chrome = new ChromeDriver();
        
        chrome.get("https://www.google.com");
        chrome.quit(); // 记得关闭浏览器
    }
}

同时需要在依赖中添加WebDriverManager(Maven示例):

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.6.0</version>
</dependency>

3. 排查模块化项目设置

如果你的项目启用了Java模块(存在module-info.java),需要在模块声明中添加对Selenium相关模块的依赖:

module your.module.name {
    requires org.seleniumhq.selenium.seleniumjava;
    requires io.github.bonigarcia.wdm;
}

如果不需要模块化,直接删除module-info.java,切换为非模块化项目模式,能避免大部分模块查找异常。

4. 移除不必要的依赖

TestNG是测试框架,你当前的代码只是运行main方法,不需要TestNG依赖,直接移除相关配置,减少依赖冲突的可能性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:35:27