【问题标题】:Nightwatch inside Docker only works with PhantomDocker 中的 Nightwatch 仅适用于 Phantom
【发布时间】:2016-12-17 21:43:01
【问题描述】:

我正在 Docker 容器中使用 nightwatch.js 运行一套测试。

当我使用 Phantomjs 运行测试时,它们运行良好。当我使用 Chrome 或 Firefox 运行相同的测试时,我收到“连接重置”错误。

Docker 容器的基础镜像是 Ubuntu:16.04,我已经安装并运行了 xvfb。

在尝试在 docker 中运行无头 Chrome 时,我已经应用了各种技巧来应对已知错误,包括:

  • 使用 --privileged 运行容器
  • 使用 --net=host 运行容器
  • 使用 -v /var/run/dbus:/var/run/dbus 运行容器
  • 使用 -v /dev/shm:/dev/shm 运行它
  • 设置 DBUS_SESSION_BUS_ADDRESS=/dev/null 环境变量
  • 确保 chrome 使用“--no-sandbox”参数和“--disable-gpu”参数运行

问题是,Firefox 和 chrome 都在运行,(你看他们都可以截屏)——问题只是“连接重置”错误。

当 Phantom 可以完美运行测试时,为什么我会从 Chrome 和 Firefox 收到连接重置错误?

【问题讨论】:

  • 能否提供Dockerfile?
  • 我无法发布 Dockerfile,但我已经找到了答案(实际上是几天前)并将其发布在下面。

标签: selenium docker automated-tests nightwatch.js


【解决方案1】:

我终于找到答案了,我不得不在docker里面设置“no_proxy”环境变量,并将它的值设置为localhost

ENV no_proxy "localhost;127.0.0.1"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2015-07-25
    • 2020-08-07
    • 1970-01-01
    相关资源
    最近更新 更多