
本文详解如何在 Java 项目中正确引入 Selenium 4 的 DevTools Network 相关类(如 Network、Headers),解决 package does not exist 编译错误,明确依赖配置与版本兼容性要求。
本文详解如何在 java 项目中正确引入 selenium 4 的 devtools network 相关类(如 `network`、`headers`),解决 `package does not exist` 编译错误,明确依赖配置与版本兼容性要求。
Selenium 4 原生支持 Chrome DevTools Protocol(CDP),但其 DevTools API 并不单独发布为 selenium-devtools 独立模块,而是作为 selenium-java 的一部分,按 Chromium 版本分包(如 v118、v120)内置于 JAR 中。因此,直接引入旧版 selenium-devtools:4.0.0-alpha-5 不仅过时,且与新版 selenium-java 冲突,反而导致编译失败。
✅ 正确做法是:
- 仅声明 selenium-java 依赖(推荐 ≥ 4.11.0,当前稳定版为 4.15.0 或更高);
- 按目标 Chrome 浏览器版本选择对应 DevTools 包路径(如 Chrome 118 → org.openqa.selenium.devtools.v118.network);
- 无需额外添加 selenium-devtools 单独依赖——它已包含在 selenium-java 中。
以下为标准 Maven 配置示例:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.15.0</version>
</dependency>对应 Java 导入语句(以 Chrome 118 为例):
import org.openqa.selenium.devtools.DevTools; import org.openqa.selenium.devtools.HasDevTools; import org.openqa.selenium.devtools.v118.browser.Browser; import org.openqa.selenium.devtools.v118.network.Network; // ✅ 正确路径 import org.openqa.selenium.devtools.v118.network.model.Headers; // ✅ 正确路径 import org.openqa.selenium.devtools.v118.performance.Performance; import org.openqa.selenium.devtools.v118.runtime.Runtime;
⚠️ 注意事项:
- 版本匹配至关重要:v118 包仅兼容 Chromium 118.x;若使用 Chrome 120,请改用 org.openqa.selenium.devtools.v120.*(Selenium 会随新 Chrome 版本持续更新对应包);
- 可通过 ChromeDriver.getCapabilities().getBrowserVersion() 获取运行时 Chrome 版本,再选择匹配的 DevTools 包;
- 若不确定版本,建议升级至最新 selenium-java(如 4.17.0+),并查阅 官方 CDP 文档 获取最新包路径;
- HasDevTools 接口需配合 ChromeOptions 启用 setAcceptInsecureCerts(true) 及 addArguments("--remote-allow-origins=*")(Selenium 4.11+ 所需)。
总结:摒弃独立 selenium-devtools 依赖,统一使用 selenium-java,按 Chromium 主版本号导入对应 vXXX 子包,即可无缝使用 Network 监控、请求拦截、性能指标等高级 DevTools 功能。

















