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

运行Selenium ChromeDriver测试代码时遇启动错误求助

问题分析与解决方案

核心问题拆解

你遇到的关键故障链:

  1. geckodriver启动失败:Selenium 4.4.0尝试向geckodriver传递--websocket-port参数,但你的geckodriver版本不支持该参数,导致驱动进程直接终止;
  2. 会话创建失败:驱动进程提前终止触发SessionNotCreatedException,无法启动浏览器会话;
  3. 代码与运行不匹配:错误栈显示运行的是newpackage.Login类(使用FirefoxDriver),但你提供的测试代码是neoproject.PG1类(使用ChromeDriver),存在运行目标类不符的情况;
  4. 代码语法错误:单个Java源文件中存在两个public类(PG1和MyClass),会导致编译失败。

具体解决步骤

1. 修复geckodriver与Selenium版本兼容问题

Selenium 4.0+新增了--websocket-port参数,旧版geckodriver(v0.30.0之前)不支持该参数,二选一解决:

  • 推荐方案:升级geckodriver到v0.30.0或更高版本,同时确保和Firefox浏览器版本匹配(Firefox 91+适配geckodriver v0.30.0+);
  • 备选方案:降级Selenium到3.x版本(不推荐,3.x已停止维护)。

2. 修正代码错误

  • 删除多余的public class MyClass,单个Java源文件只能有一个public类;
  • 检查运行配置:确保启动的是你编写的PG1类,而非错误栈中的Login类。

如果继续使用ChromeDriver,额外确认:

  • Chrome浏览器版本与chromedriver版本完全匹配(如Chrome 114对应chromedriver 114.x);
  • System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe")中的路径正确,chromedriver.exe确实存在于该位置。

3. 消除SLF4J警告(可选)

该警告不影响测试运行,仅缺少日志实现。若要消除,在项目依赖中添加SLF4J的具体实现(以Maven为例):

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version>
    <scope>test</scope>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:52:16