关于java:尽管使用–no-sandbox选项,Chromedriver仍无法以root用户身份运行

Chromedriver won't run as root despite --no-sandbox option

我无法让Chromedriver在Docker中运行,看来我正在根据需要传递所有内容,但它仍然抛出\\'root with sandbox \\'错误并退出。

1
2
3
4
5
6
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-这可能是问题所在?

  • 谷歌浏览器70.0.3538.77
  • org.seleniumhq.selenium:selenium-chrome-driver:jar:3.141.59

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

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


您必须使用匹配的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