如何在无界面模式下运行浏览器(chrome、IE和firefox)?

9

我希望将JSTestDriver集成到jenkins-CI中。 问题在于构建服务器没有显示器。 有没有一种无头浏览器的运行方式?

谢谢。


翻译:heedlessly或headlessly的意思是什么? - gdoron
6
请查看Phantom JS - elclanrs
+1 我不确定这是否有助于答案,但它对我很有帮助,谢谢。 - winner_joiner
1
Phantom是基于WebKit的。我想在所有浏览器(包括不使用WebKit的浏览器)上运行测试。 - Mukesh Kumar
相信你的服务器无论如何都无法测试所有浏览器,因为IE是一个Windows浏览器,但你所描述的设置听起来像是一个Unix / Linux机器。 - Mike 'Pomax' Kamermans
你应该接受答案或者说明为什么它不起作用。 - tgkprog
3个回答

6
如果您的服务器是基于Linux操作系统,如上所述,就无法使用IE浏览器。但是,您可以运行其他浏览器,比如Firefox。关键是在您的Jenkins服务器上安装XVFB,这将允许Firefox以无头模式运行。我已经使用了这个设置,效果很好。 http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

2
Google Chrome现在(Mac和Linux的Chrome 59,Windows的Chrome 60)内置了无头模式。它可以跨平台使用,不需要任何与显示设备、虚拟机或其他类似的操作。您可以在这里找到Eric Bidelman的入门文章,但以下是最关键的要点:
您必须使用--headless标志启动Chrome二进制文件(在macOS上,它位于Google Chrome.app捆绑包中的Contents/MacOS目录中)。由于GPU加速在无头模式下无法正常工作,因此目前还需要添加--disable-gpu标志。
chrome --headless --disable-gpu [url/path/flags...]

与标准的非无头 Chrome 一样,如果启用了 --remote-debugging-port=[SOME_PORT] 标志,您的测试运行程序可以使用开发工具接口与 Chrome 进行通信。但是,如果您只想快速测试它,您可以使用 --screenshot--dump-dom 标志在加载后检查页面内容。
chrome --headless --disable-gpu --dump-dom https://stackoverflow.com/

2
从 Linux 版本 55 和 Windows/macOS 版本 56 开始,Firefox 现在 内置了无头模式
此时(2017 年 9 月),我正在使用基于 GNU/Linux 的发行版,带有 Firefox 55,像这样的控制台命令可以正常工作:firefox --headless http://www.wikipedia.org,虽然这不是非常有用,但我看到相应的 Firefox 操作系统进程仍在运行。
这个功能会逐渐改进,因此阅读官方开发人员文档是推荐的,特别是对于那些对自动化测试和持续集成计划感兴趣的人。

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