在Docker容器中执行Firefox浏览器进行Selenium测试

4
我有一个Java应用程序,通过Selenium WebDriver库在FF浏览器中控制自动化GUI测试。Java应用程序从数据库中读取测试用例,并根据代码逻辑执行它们。
例如,如果应用程序读入一个字段,它将使用Selenium框架的"findElement"方法进行搜索。我不使用任何Selenium测试脚本。
目前,这一切都发生在员工的本地工作站上。
现在我想把整个环境移动到Docker容器中。 是否可能在容器中实例化Firefox浏览器? 顺便说一下:我不需要看到我的浏览器的实际GUI。
其次: 有几个带有dockerhub上的selenium的容器可供使用,但这些容器不适合我的环境,我是对的吗? 据我所知,SeleniumGrid期望测试脚本,并且无法通过运行时执行。
我打开了一个Linux虚拟机(Debian:Jessie发行版),其中运行Docker。
我还是Docker的初学者。 我在这里找不到关于我的目的的任何问题。 提前致谢!
1个回答

3

如何在容器中实例化Firefox浏览器?

可以。最简单的方法是使用Docker Hub上的Selenium镜像

有几个带有Selenium的容器可以在dockerhub上使用,但这些都不适合我的环境,我是对的吗?

如果您认为Selenium镜像不适合您,因为它们都基于Selenium Grid,那么您可以使用StandaloneFirefox和StandaloneChrome镜像。这些是独立的实例,它们不使用Selenium Grid。

顺便说一句,非Debug版的Selenium镜像没有GUI。您提到您不需要看到浏览器运行,所以这些应该没问题。如果您确实需要看到浏览器,Debug版镜像安装了VNC服务器,因此您可以运行镜像,使用VNC客户端连接,并观看浏览器运行测试。


如果容器主要运行我的Java应用程序,那么是否可以在同一Docker容器中启动一个“非Selenium”的Firefox浏览器? - Timo
@TimoPa 我不知道为什么不行。虽然我自己没有尝试过,但你应该能够挖掘前面提到的Selenium Dockerfiles并看看它们是如何做到的。你可以通过命令行安装Firefox在许多发行版中。 - bluescores

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接