【问题标题】:How to run browsers(chrome, IE and firefox) in headless mode?如何在无头模式下运行浏览器(chrome、IE 和 firefox)?
【发布时间】:2013-02-23 17:27:55
【问题描述】:

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

谢谢

【问题讨论】:

  • 漫不经心或无头无脑的意思?
  • 检查Phantom JS。
  • +1 我不确定这是否对答案有帮助,但它对我有帮助 THX
  • Phantom 是基于 WebKit 的。我想在所有浏览器(IE 等)上运行测试,包括不使用 WebKit 的浏览器
  • 很确定您的服务器无论如何都无法测试所有浏览器,因为 IE 是 Windows 浏览器,但您描述的设置听起来像 unix/linux 机器。

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    Google Chrome 现在 (Chrome 59 for Mac and Linux, Chrome 60 for Windows) 内置了无头模式。它可以跨平台工作,并且不需要任何显示设备、虚拟机或类似的东西。你可以找到a great Getting Started article by Eric Bidelman here,但这里是最关键的:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-03
        • 2012-04-08
        • 2022-12-24
        • 1970-01-01
        相关资源
        最近更新 更多