如何在无头模式下运行浏览器(chrome,IE和firefox)?

时间:2013-03-08 08:11:50

标签: javascript js-test-driver headless-browser

我想将JSTestDriver与jenkins-CI集成。 问题是构建服务器没有显示。 有没有办法无头地运行浏览器?

由于

3 个答案:

答案 0 :(得分:7)

如果您的服务器是Linux,如上所述,您无法运行IE。但您可以运行其他浏览器,如Firefox。诀窍是在你的Jenkins服务器上安装XVFB,这允许Firefox运行无头。我已经使用过这种设置,效果很好。

http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

答案 1 :(得分:2)

现在谷歌浏览器(Chrome 59 for Mac and Linux, Chrome 60 for Windows)内置了无头模式。它可以跨平台工作,并且不需要对显示设备,虚拟机或类似的东西进行任何操作。您可以找到a great Getting Started article by Eric Bidelman here,但以下是最关键的一点:

您必须使用Google Chrome.app标记启动Chrome二进制文件(在macOS上,它位于Contents/MacOS目录中的--headless包内)。 当前也需要添加--disable-gpu标志,因为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 :(得分:1)

Firefox,Linux版本55,Windows版本56和MacOS版本now has a builtin headless mode

此时(2017年9月)我使用基于GNU / Linux的发行版,使用Firefox 55,这样的控制台命令工作正常:firefox --headless http://www.wikipedia.org,这不是非常有用的,但是它的工作原理是因为我看到Firefox的相应操作系统进程一直在运行。

此功能会逐渐改善,因此建议阅读official developers documentation,特别是对那些对自动化测试和持续集成计划感兴趣的人。