有无法以无头模式启动Google Chrome的方法吗?

Sil*_*ian 57 google-chrome headless

我在http://peter.sh/experiments/chromium-command-line-switches/#chrome-frame上仔细修改了交换机列表,我找不到任何可以在隐藏的后台进程中启动Chrome的内容.

我最接近的是--keep-alive-for-test+自定义打包应用程序,但应用程序无法执行任何传递的代码,因为(它报告的方式)"没有窗口 - ChromeHidden".

Van*_*uan 62

TL; DR

google-chrome --headless --remote-debugging-port=9222 http://example.com
Run Code Online (Sandbox Code Playgroud)

你还需要--disable-gpu暂时.


教程:

https://developers.google.com/web/updates/2017/04/headless-chrome


有一项工作正在进行中:https://code.google.com/p/chromium/issues/detail?id = 546953

主要可交付成果是:

  1. 无头应用程序可以链接到的库.
  2. 演示无头API使用的示例应用程序.

因此,可以创建一个在控制台中运行而不连接到显示的简单应用程序.

更新于2016年4月18日:工作主要完成.现在有一个公共论坛:

https://groups.google.com/a/chromium.org/forum/#!forum/headless-dev

文档正在进行中:

https://chromium.googlesource.com/chromium/src/+/master/headless/README.md

更新09月20日'16:它看起来像铬得到的终将"--headless"参数: https://bugs.chromium.org/p/chromium/issues/detail?id=612904

一个演讲上blinkon指定6(16/17月,2016)

更新2016年11月29日:--headless标志设计文档:https://docs.google.com/document/d/1aIJUzQr3eougZQp90bp4mqGr5gY6hdUice8UPa-Ys90/edit#heading=h.qxqfzv2lj12s

更新2016年12月13日: --headless标志很快将在Canary版本中提供

更新于2017年3月12日: Chrome 57有一个--headless标志.等待Selenium和其他工具赶上来.用户指南:https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md

  • @Pacerier AFAIK,大多数Web开发人员都在使用基于Unix的系统.CI服务器主要在Linux上.大多数用户使用Windows,这是真的.但这就是人们喜欢web的原因:它与平台无关,因此浏览器在所有平台上的工作方式都相同. (3认同)
  • 大坝仍然不在Windows上。看到大多数人(甚至是开发人员)都在使用Windows,难道不是Windows的优先事项吗? (2认同)

Chr*_*s B 23

这个家伙设法通过使用Xvfb(X虚拟帧缓冲区)来无聊地运行Chrome,以欺骗Chrome认为它正在显示一个窗口:

http://e-method.blogspot.fr/2010/11/google-chrome-with-xvfb-headless-server.html

如果你在Linux上,你可以试试.

所以基本上你需要通过以下方式安装X虚拟帧缓冲区和谷歌浏览器:

root@localhost: ~# apt-get install xvfb imagemagick
root@localhost: ~# apt-get install google-chrome
Run Code Online (Sandbox Code Playgroud)

然后在显示屏上运行浏览器:

root@localhost: ~# xvfb-run --server-args='-screen 0, 1024x768x24' \
google-chrome -start-maximized http://www.example.com \
> & /dev/null &
root@localhost: ~# DISPLAY=:99 import -window root myimage.png
Run Code Online (Sandbox Code Playgroud)

  • 该链接不再起作用,但通过Google搜索找到了这个链接:http://e-method.blogspot.fr/2010/11/google-chrome-with-xvfb-headless-server.html (3认同)
  • 但这不能在Windows上完成,可以吗? (2认同)
  • 这不是一个技巧,但它是一个很好的解决方案:) (2认同)

Ant*_* O. 12

或者你可以看看PhantomJS项目,这是一个无头的WebKit实现.

  • WebKit最近已被眨眼取代,因此PhantomJS不再模仿现代Chrome版本. (4认同)
  • 是的,我知道是否因为我已经测试了它.您可以测试几乎任何支持JS的解决方案,例如,Sencha的ExtJS4复杂演示或Google的Adwords关键字工具界面. (3认同)
  • 幻影在我的机器上慢了10倍,从那以后一直使用Selenium/chromedriver. (2认同)

Sil*_*ian 7

如果你把它作为子子进程启动,它会以无头模式启动.除此之外:

  • nircmd.exe可以win hide根据其PID对chrome进行操作
  • Autohotkey_L也可以在没有任务栏按钮的情况下启动Chrome隐藏

  • 我意识到这是一个陈旧的答案,但有可能指出任何代码示例显示这个吗?非常感谢. (3认同)

mit*_*mit 7

您可以设置一个Linux VM并在其中使用xvfb.

在debian/ubuntu上安装:

sudo aptitude install xvfb
Run Code Online (Sandbox Code Playgroud)

启动Chrome无头并访问http://example.com:

xvfb-run --server-args='-screen 0, 1024x768x16' google-chrome 
    -start-maximized http://example.com > /dev/null &
Run Code Online (Sandbox Code Playgroud)


Mik*_*est 5

铬嵌入式框架项目好像它可能适合你的用例.我没有这个项目的个人经验,但我听说过好东西,并且它有一个可靠的API,你应该能够为你的目的利用它.