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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何运行无头的selenium脚本,独立于主机和浏览器相关的知识,希望对你有一定的参考价值。

我想在CI作业上运行一个用Java构建的无头selenium“脚本”,独立于主机(和浏览器)。

我可以构建一个jar并在终端上运行“脚本”,我只需要小心指向并配置正确的驱动程序,具体取决于我运行脚本的操作系统和主机的浏览器。但是,在CI主机上,如果它们完全可用,我不一定控制主机和浏览器。

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

之前提出的一些问题非常针对给定的主机和浏览器组合。我可以让主机摆脱问题并让浏览器可用,例如,通过容器。

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

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

答案

这是可行的。如“How to run Selenium scripts in multiple browsers from Jenkins ”所示,可以使用浏览器提升docker镜像,然后使用Remote WebDriver连接到该浏览器。

Selenium grid,也引用了该问题的答案是一个可行的选项,同时提出任何给定浏览器的多个节点,对并发场景有用,这不是这个问题的特殊情况。

以上是关于如何运行无头的selenium脚本,独立于主机和浏览器的主要内容,如果未能解决你的问题,请参考以下文章

使用多个蜘蛛无头运行 Selenium

使用 Headless Chrome Webdriver 运行 Selenium

如何使用机器人框架运行无头 REMOTE chrome

如何在 Xvfb 上运行无头 Firefox

如何让无头浏览器模仿成熟的浏览器来使用 selenium 运行 Web 应用程序?

Selenium webdriver 无法在 chrome 无头模式下定位元素