只有当 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/