首页 > 解决方案 > 尽管 --no-sandbox 选项,Chromedriver 不会以 root 身份运行

问题描述

我无法让 Chromedriver 在 Docker 中运行,而且似乎我正在根据需要传递所有内容,但它仍然会引发“带有沙盒的根”错误并退出。

2019-02-15 15:30:22 INFO : Using chromedriver set in webdriver.chrome.driver: /usr/bin/google-chrome
2019-02-15 15:30:22 INFO : Setting ChromeDriver options {browserName=chrome, goog:chromeOptions={args=[--start-maximized, headless, --no-sandbox], extensions=[], prefs={profile.default_content_settings.popups=0, download.prompt_for_download=false, download.default_directory=/home/jenkins/workspace/..../}}}
[1036:1036:0215/153022.769651:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
Feb 15, 2019 3:30:42 PM org.openqa.selenium.os.OsProcess checkForError
SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
Failure in before hook:Hooks.getDriver(Scenario)

我已经记录了 ChromeOptions 内容,并且很明显args包含--no-sandbox- 这可能是什么问题?



类似于如何以 root 身份运行 selenium chromedriver?(即使使用 --no-sandbox 也不能工作,但这已通过 Python 依赖项解决 - 这是一个 Java 项目。


我还添加-Dwebdriver.chrome.args="--no-sandbox"了 Maven 命令。

标签: javaseleniumselenium-webdriverselenium-chromedriver

解决方案


您必须使用匹配的 Chrome 和 ChromeDriver 版本才能使 Selenium 正常工作。http://chromedriver.chromium.org/downloads上有一个列表。

在这篇文章的时候:

  • 如果您使用的是 Chrome 版本 73,请下载 ChromeDriver 73.0.3683.20
  • 如果您使用的是 Chrome 版本 72,请下载 ChromeDriver 2.46 或 ChromeDriver 72.0.3626.69
  • 如果您使用的是 Chrome 版本 71,请下载 ChromeDriver 2.46 或 ChromeDriver 71.0.3578.137

推荐阅读