← 中文资源

简体中文版本

Selenium 启动浏览器时报 WebDriverException: unknown error

通过让驱动与浏览器版本匹配并在资源充足的容器中以无头方式运行,修复 Selenium 的 WebDriverException。

阅读英文原文

症状

启动 Selenium 会话时抛出 WebDriverException,消息可能是 unknown error: Chrome failed to start 或 DevToolsActivePort file does not exist。它在容器与 CI 中最常见,因为浏览器没有显示、共享内存不足,或版本与已安装驱动不匹配。

诊断

比对浏览器与驱动版本;在 Docker 中以 –headless=new 与 –no-sandbox 试启;必要时增大 –shm-size。

google-chrome --version && chromedriver --version

根因

浏览器启动失败,原因是驱动与浏览器不匹配、容器缺少显示或共享内存,或沙箱机制阻止了启动,而不是测试代码的问题。

修复

让驱动与浏览器版本匹配,最好交给 Selenium Manager 自动获取;以无头模式并配合适当标志运行;为容器提供足够的共享内存。每会话复用一个驱动并干净退出。

验证

启动浏览器确认能加载页面,再跑测试套件确认不再抛 WebDriverException。相同容器设置下稳定通过才是真正的证明。

常见陷阱

在无头容器中长期禁用沙箱会降低隔离性;应尽量以最小权限与合适资源运行。