创建包含适用于 Selenium 的 Firefox 和 Chrome 驱动程序的 Dockerfile

2024-04-11

我有以下 Dockerfile 将构建 Selenium 服务器

FROM selenium/standalone-firefox:3.4.0-chromium
FROM selenium/standalone-chrome

USER root
ENV NODE_ENV test

RUN mkdir -p /usr/local/cdt-tests/csv-data
COPY ./csv-data /usr/local/cdt-tests/csv-data
USER seluser

显然这两个 FROM 语句是不正确的=> 如何创建一个包含适用于 Selenium 的 Chrome 驱动程序和 Firefox 驱动程序的 Selenium 服务器容器。据我所知,selenium/standalone-firefox:3.4.0-chromium图像仅适用于 Firefox。


像您建议的那样,Dockerfile 没有继承类型设置。

要实现组合构建,您需要找到通用的FROM的祖先standalone-firefox and standalone-chrome,即selenium/node-base并创建您自己的 Docker 文件以重新应用所有构建步骤selenium/standalone-chrome适用。然后每当 Selenium 更新其构建时保持同步。

Dockerfile 层次结构:

                selenium/node-base
                /               \
selenium/node-chrome          selenium/node-firefox
               |                 |
selenium/standalone-chrome    selenium/standalone-firefox

问题是这些构建被设计为独立的,因此图像使用的变量和设置存在显着重叠,您还需要在自定义构建中取消选择以同时控制和运行 chrome 和 firefox。您可能最终不得不从头开始做所有事情。

硒网格

跑步个人硒栅 https://github.com/SeleniumHQ/selenium/wiki/Grid2节点在 a 后面grid hub https://hub.docker.com/r/selenium/hub/是从单个端点进行多浏览器测试的标准方法。你可以运行Firefox https://hub.docker.com/r/selenium/node-firefox/, Chrome https://hub.docker.com/r/selenium/node-chrome/ or 幻影JS https://hub.docker.com/r/selenium/node-phantomjs/Docker 中的节点或连接标准节点 https://github.com/SeleniumHQ/selenium/wiki/Grid2#configuring-the-nodes-by-command-line从其他地方。

穷人网格

如果设置网格对于针对每个浏览器运行一些测试的简单情况来说是一项繁重的工作,那么您始终可以在单独的端口上运行 Chrome 和 Firefox 的容器,并将相同的测试套件指向不同的端口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建包含适用于 Selenium 的 Firefox 和 Chrome 驱动程序的 Dockerfile 的相关文章

随机推荐