使用特殊的测试框架(可能是 IDE)或持续构建系统(例如 Jenkins)运行 ChromeDriver 或 Chrome 时,这种情况经常会发生。
尝试从普通用户命令提示符启动与您的测试使用的相同 Chrome 二进制文件。确认 chromedriver.log
文件中使用的 Chrome 二进制文件。如果您向 Chrome 传递特殊的命令行开关或参数,请务必也将它们包含在内。如果 Chrome 未能正常启动,您需要修正 Chrome 的安装。请尝试重新安装。
假设您可以通过命令提示运行 Chrome,那么下一步是检查在测试环境中运行测试时是否会出现同样的问题。最好直接从普通用户的命令提示符启动测试二进制文件或脚本。确认您可以直接从测试中启动 Chrome,而无需使用 WebDriver 或 ChromeDriver。例如,在 Java 中,您可以使用 ProcessBuilder API 直接启动 Chrome 二进制文件。如果您的测试即使在测试环境中也出现相同的问题,请提交新问题,并附上有关如何重现问题的说明。
否则,如果问题仅在您的特殊测试环境中出现,请执行以下操作:
使用 Chrome 的备用安装程序。此操作会为所有用户安装 Chrome。如果您将 Selenium 作为后台服务运行,这通常可以解决问题。
Chrome 在启动期间崩溃的一个常见原因是,在 Linux 上以 root 用户(管理员)身份运行 Chrome。虽然您可以在创建 WebDriver 会话时传递 --no-sandbox
标志来解决此问题,但我们不支持此类配置,强烈建议您不要这样做。请改为将环境配置为以普通用户身份运行 Chrome。
如果上述所有解决方案都无法解决问题,请提交新问题,并附上有关如何重现问题的说明。请注意,如果您的问题仅在特殊的非常规测试环境中出现,ChromeDriver 开发者可能会选择不调查和解决您的问题。