javascript - docker/ Selenium / headless Chrome : Configure SUID sandbox correctly

标签 javascript google-chrome selenium docker

我想在我的 docker 容器中运行 selenium 和 headless chrome 以进行测试。

我试图在我的 .js 文件中使用以下内容在 headless chrome 中(在我的 docker 容器之外)运行 selenium。这有效:

const client = webdriverio.remote({
   desiredCapabilities: {
   browserName: 'chrome',
   chromeOptions: {
     args: ['--headless', '--disable-gpu']
   },
   binary: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
   },
 baseUrl: CONFIG.host,
 logLevel: 'verbose',
 waitForTimeout: 3000
 })

但我无法让它在我的 docker 容器中工作。在我的 docker 容器中,我使用“FROM selenium/standalone-chrome”。我的 dockerfile 似乎没有任何问题。当我尝试运行我的 Selenium 测试时会出现问题。我将 .js 文件中的 binary_path 更改为/opt/google/chrome/google-chrome。但测试失败,甚至无法启动客户端。

因此,我尝试运行/opt/google/chrome/google-chrome 以查看 chrome 是否有效,但随后出现此错误:
[0711/005304.226472:ERROR:nacl_helper_linux.cc(311)] NaCl helper 
process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly      

我对此很陌生(和堆栈溢出),所以我可能错过了一些基本的东西。

最佳答案

尝试包含 --no-sandbox

chromeOptions: {
  args: ['--headless', '--disable-gpu', '--no-sandbox']
},

正如我在 docker-selenium 所做的那样

关于javascript - docker/ Selenium / headless Chrome : Configure SUID sandbox correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025628/

相关文章:

php - Codeception vs 橄榄石 + php-webdriver?

javascript - Facebook共享:第一次单击共享时预览窗口为空

javascript - javascript中前置加号的含义

android - 如何测量移动设备上的网页加载时间?

jquery - 原型(prototype) : Detect Chrome and Add Class

html - 您如何将chrome浏览器与Sublime文本集成在一起以实现更好的工作流程

python - 我该如何循环执行driver.refresh()并重试,即使它找不到项目中的字母之一?

python - Selenium 测试对所有看似随机错误的 URL 都失败了

javascript - 从表单在同一页面内调用JS函数(AJAX)

javascript - 验证码失败显示警报但表单自动提交如何停止