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

求助:Selenium调用方法时触发NoSuchSessionException异常

我来帮你排查这个棘手的No Such Session异常问题!结合你的Chrome和ChromeDriver版本,给你整理几个针对性的排查方向:

针对Selenium "No Such Session" 异常的适配排查方案

1. 先确认会话是否被意外终止

  • 检查代码里有没有在操作前提前调用了driver.quit()或driver.close(),尤其是分支逻辑里容易出现这类遗漏,导致后续操作时会话已失效。
  • 排查是否存在多线程共享同一个WebDriver实例的情况,无同步的多线程操作很容易触发会话意外关闭。

2. 强制清理ChromeDriver残留进程

这个版本的ChromeDriver偶尔会出现进程残留,导致新会话无法正常建立:

  • 手动打开任务管理器,结束所有chromedriver.exe和无窗口的后台chrome.exe进程。
  • 可以在代码启动WebDriver前,添加清理逻辑(Windows环境):
// 执行命令杀掉残留的ChromeDriver进程
Runtime.getRuntime().exec("taskkill /F /IM chromedriver.exe /T");

3. 调整WebDriver启动参数

试试添加这些参数规避会话异常:

ChromeOptions options = new ChromeOptions();
// 禁用沙箱模式,避免权限问题导致会话崩溃
options.addArguments("--no-sandbox");
// 禁用GPU加速,部分Windows环境下会引发会话异常
options.addArguments("--disable-gpu");
// 阻止浏览器随Driver进程一起退出,方便排查会话状态
options.setExperimentalOption("detach", true);
WebDriver driver = new ChromeDriver(options);

4. 排查环境干扰因素

  • 如果使用了代理,确认代理配置是否正常,代理连接失败会直接导致会话终止。
  • 暂时关闭杀毒软件、防火墙等安全工具,这类软件可能会拦截ChromeDriver与Chrome的通信,引发会话丢失。

5. 规范WebDriver生命周期管理

  • 避免在循环中重复创建WebDriver实例,每次使用完毕务必调用driver.quit()(而非driver.close(),后者仅关闭窗口,不会彻底销毁会话和进程)。
  • 若使用测试框架(如TestNG/JUnit),要在@AfterMethod或@AfterClass注解方法中统一执行driver.quit(),避免会话残留。

补充说明:你的ChromeDriver 2.38和Chrome 66.0.3359.117属于官方兼容版本,版本不匹配的问题可以直接排除,重点放在会话管理、进程残留和环境干扰上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:29:23