node.js - 在 docker 容器上运行 NOT headless chrome

标签 node.js docker ubuntu docker-machine e2e-testing

只有当 chrome 是 headless 的时,才能在 docker 机器上运行 chrome。不幸的是,headless chrome 无法忽略阻止我的测试运行的证书错误。

我正在尝试在 docker 容器上运行一个已经正常工作的 NodeJS e2e 测试环境。大多数测试都通过了,但是当站点需要证书时就无法访问。在 none headless chrome 上,我可以简单地忽略认证错误。 容器上安装的基础 docker 镜像是 Node:8

{
 browserName: 'chrome',
 chromeOptions: {
   binary: puppeteer.executablePath(),
   args: [
     '--lang=en-US','--headless','--no-sandbox','--ignore-certificate-errors'
   ]
}

预期的结果是要么在 docker 容器上使用 gui 运行 chrome,要么以某种方式忽略 headless chrome 中的服务器证书错误。

最佳答案

使用 Xvfb。这将允许您使用带有 GUI 的 Chrome。

想法很简单:您使用虚拟桌面。在独立 VM 上配置多个桌面/显示器需要一些努力。使用 Docker,这很简单。

一些例子:

http://www.mattzeunert.com/2018/07/21/running-headful-chrome-on-ubuntu-server.html

https://medium.com/dot-debug/running-chrome-in-a-docker-container-a55e7f4da4a8

关于node.js - 在 docker 容器上运行 NOT headless chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53942598/

相关文章:

node.js - EACCES : permission denied, mkdir '/node_modules/node-sass/build' 在 ubuntu 上运行 npm install

bash - Docker容器不断在终端注册Enter Key

Docker 跨主机持久存储?

linux - 更改tomcat服务器端口的命令

javascript - 如何并行运行生成器函数?

node.js - 选择字段值作为数组 mongoose/mongodb 聚合

docker - 如何在DC OS中强制拉取docker镜像?

php - ubuntu 升级后 mcrypt_create_iv 不再在 apache2 上工作

c++ - mongodb cpp 驱动程序(ubuntu 服务器 x64)中缺少 lboost_thread-mt

javascript - Webpack-dev-server 找不到模块