如何运行无头selenium脚本,独立于主机和浏览器

我想在一个CI作业上运行一个以Java为基础的无脚本selenium“脚本”,与主机(和浏览器)无关。

我可以构build一个jar并在terminal上运行“脚本”,我只需要非常小心地指向和configuration正确的驱动程序,具体取决于我运行该脚本的主机的操作系统和浏览器。 但是,在CI主机上,我不一定会控制主机和浏览器,如果它们可用的话。

所以我想让脚本的执行独立于脚本运行的主机和浏览器。 它可以运行在Jenkins,Travis,Gitlab CI等的奴隶实例上。

以前有几个问题是针对给定的主机和浏览器组合的。 我可以把主机拿出来,让浏览器可用,例如,通过一个容器。

如果浏览器可用作容器图像,则可以针对不同的浏览器运行脚本,每个浏览器都有自己的图像。 而且我已经准备好适合这些浏览器实例的驱动程序了。

这是可行的,我可以做到这一点最简单的方法是什么?

这是可行的。 如“ 如何在Jenkins的多个浏览器中运行Selenium脚本 ”所示,可以使用浏览器引发Docker镜像,然后使用Remote WebDriver连接到该浏览器。

Selenium网格也被引用在这个问题的答案上,这是一个可行的选项,可以同时提高任何给定浏览器的多个节点,对于并发场景非常有用,这不是这个问题的特殊情况。