在 Linux 中通过 Selenium 使用 Chrome 运行而不会出现沙箱错误的 NaCl 辅助进程

Dus*_*ahu 7 linux ubuntu selenium google-chrome sandbox

我在 Linux 中通过 Selenium 使用 Chrome 时遇到以下错误:

ERROR:browser_main_loop.cc(1512)] Unable to open X display.
ERROR:nacl_helper_linux.cc(308)] NaCl helper process running without a sandbox!
Run Code Online (Sandbox Code Playgroud)

您有解决以下错误的方法吗?

Deb*_*anB 4

这个错误信息...

ERROR:nacl_helper_linux.cc(308)] NaCl helper process running without a sandbox!
Run Code Online (Sandbox Code Playgroud)

...意味着系统中沙箱setuid未配置,因此程序无法启动/生成新的浏览上下文,即Chrome 浏览器会话。


解决方案

一个快速的解决方案是,如果你想运行 Chrome 并且只使用命名空间沙箱,你可以设置标志:

--disable-setuid-sandbox
Run Code Online (Sandbox Code Playgroud)

此标志将禁用 setuid 沙箱(仅限 Linux)。但如果您在没有适当内核支持命名空间沙箱的主机上执行此操作,Chrome 将无法启动。作为替代方案,您也可以使用该标志:

--no-sandbox
Run Code Online (Sandbox Code Playgroud)

此标志将为通常沙箱化的所有进程类型禁用沙箱。

例子:

chromeOptions: {
      args: ['--disable-setuid-sandbox', '--no-sandbox']
},
Run Code Online (Sandbox Code Playgroud)

  • 这似乎对我没有影响。 (4认同)