Chrome 无法立即启动或崩溃

使用特殊的自动化测试框架(可能是 IDE)或连续构建系统(如 Jenkins)运行 ChromeDriver 或 Chrome 时,经常会发生这种情况。

首先,请尝试通过常规用户命令提示符启动测试使用的同一 Chrome 二进制文件(检查您的 chromedriver.log 文件以了解正在使用的 Chrome 是什么)。如果您要将任何特殊的命令行开关或参数传递给 Chrome,请务必也添加这些内容。如果 Chrome 无法正确启动,您就需要修复 Chrome 安装问题(可能需要重新安装)。

假设您可以从命令提示符运行 Chrome,那么下一步应看看在测试环境中运行测试时是否会出现相同的问题(最好是直接从普通用户的命令提示符启动测试二进制文件或脚本)。您还应检查是否能够直接从测试中启动 Chrome(不使用 WebDriver/ChromeDriver)。例如,在 Java 中,您可以使用 ProcessBuilder API 直接启动 Chrome 二进制文件。如果您的测试即使在测试环境中也表现出相同的问题,请提交新问题并说明如何重现该问题。

否则,如果问题只是出现在您的特殊测试环境中,请执行以下操作:

使用 Chrome 的备用安装程序。这样即可为所有用户安装 Chrome。如果您以后台服务的形式运行 Seenium,这通常可以修复问题。

Chrome 在启动期间崩溃的一种常见原因是,在 Linux 上以 root 用户(管理员)身份运行 Chrome。虽然可以在创建 WebDriver 会话时传递 --no-sandbox 标志解决此问题,但此类配置不受支持,并且强烈建议不要这样做。而应将您的环境配置为以常规用户身份运行 Chrome。

如果上述方法均无法解决问题,请提交新问题,并附上有关如何重现该问题的说明。如果您的问题仅在一种不常见的特殊测试环境中出现,请注意,ChromeDriver 开发者可能会选择不调查/解决您的问题。