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

WebDriver/Selenium出现SessionNotCreatedException崩溃问题求助

定期出现Chrome启动失败错误的原因分析

使用standalone-chrome Selenium Docker镜像,通过Facebook WebDriver PHP SDK远程连接时,定期触发如下错误,等待数分钟后恢复正常,可能由以下原因导致:

An uncaught Exception was encountered

Type: Facebook\WebDriver\Exception\SessionNotCreatedExceptionMessage: Could not start a new session. Error while creating session with the driver service. Stopping driver service: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) 
Host info: host: 'f4b06faf0f6c', ip: '172.17.0.3'
Build info: version: '4.7.2', revision: '4d4020c3b7'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.15.0-41-generic', java.version: '11.0.17'
Driver info: driver.version: unknown
Build info: version: '4.7.2', revision: '4d4020c3b7'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.15.0-41-generic', java.version: '11.0.17'
Driver info: driver.version: unknownFilename: /var/www/web1/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.phpLine Number: 130
  • 容器资源耗尽:Docker容器分配的内存、CPU不足,当并发创建多个Chrome会话时,系统资源被占满,导致Chrome启动失败。等待一段时间后,闲置进程释放资源,就能恢复正常。可以通过docker stats命令查看容器的实时资源占用情况,调整容器的资源限制(比如--memory、--cpus参数)。
  • Chrome与ChromeDriver版本不兼容:standalone-chrome镜像内的Chrome浏览器和ChromeDriver版本不匹配,日常低负载下可能正常运行,但高负载时触发兼容性问题,导致Chrome启动异常。可以进入容器执行google-chrome --version和chromedriver --version,核对两者版本是否对应(一般ChromeDriver版本需与Chrome主版本一致)。
  • 会话清理不彻底:PHP代码中没有正确关闭Chrome会话,仅调用close()关闭窗口而未调用quit()终止整个会话,导致容器内残留大量僵尸Chrome进程。进程积累到一定数量后,无法创建新会话,等待僵尸进程被系统回收后恢复。检查代码逻辑,确保每个会话结束后执行$driver->quit()。
  • 临时文件异常:Chrome运行时依赖的临时目录(如/tmp)被占满或权限错误,导致无法生成DevToolsActivePort文件,进而触发启动失败。可以给容器挂载本地临时目录(-v /host/tmp:/tmp),或定期清理容器内的临时文件。
  • Selenium Grid会话队列溢出:如果使用Selenium Grid模式,当并发请求超过Grid节点的最大会话数限制,会导致会话创建失败。等待队列中的会话完成后,新请求即可正常处理。可以调整Grid节点的配置参数(如--max-sessions),增加并发处理能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:35:01