我从来没有用 Java 尝试过 Selenium,只用过 Ruby,但你的交互应该是相似的。我不认为 Selenium 有无头模式,你必须为此使用不同的驱动程序。例如,对于 ruby,有capybara-webkit,它运行基于无头 webkit 的浏览器。
我可以根据我自己的经验告诉你,我们在使用无头浏览器的 CI(构建服务器)上遇到了很多问题,所以我们最终切换回了 Selenium 和运行在Xvfb之上的 Google Chrome ,这是一种虚拟屏幕管理器适用于 unix,可让您在无头环境中运行图形应用程序。大多数问题与 webkit 无头浏览器和实际驱动程序之间的不一致行为有关。但是,根据您的应用程序的外观以及您将如何驱动它,它可能对您有用,您应该尝试一下。
因此,您需要的唯一组件是 Selenium 服务器(驱动浏览器)和客户端,它将命令发送到服务器。他们有 java 和 ruby 客户端,所以你可以选择你喜欢的任何语言。
这确实是一个缓慢的过程,而且非常不稳定,因为有时由于超时、第 3 方 API 关闭等原因,您的测试可能会无缘无故地失败。有很多事情可能会出错并导致您的集成测试失败.
无论如何,它仍然是一个非常宝贵的工具,你绝对应该使用它。请注意,您不应该完全依赖这些类型的测试来确保您的应用程序的质量,但是,这些应该只测试您系统的较小表面。单元和组件测试应该构成测试套件的大部分。
希望这有助于澄清您的问题。