![](/img/trans.png)
[英]Is there any way to store PDF made by chrome headless mode in RAM?
[英]Any way to start Google Chrome in headless mode?
我在http://peter.sh/experiments/chromium-command-line-switches/#chrome-frame上仔细修改了交换机列表,我找不到任何可以在隐藏的后台进程中启动Chrome的内容。
我最接近的是--keep-alive-for-test
+自定义打包应用程序,但是应用程序无法执行任何传递的代码,因为(它报告的方式)“没有窗口 - ChromeHidden”。
TL; DR
google-chrome --headless --remote-debugging-port=9222 http://example.com
你还需要暂时使用--disable-gpu
。
教程 :
https://developers.google.com/web/updates/2017/04/headless-chrome
有一项工作正在进行中: https : //code.google.com/p/chromium/issues/detail?id = 546953
主要可交付成果是:
- 无头应用程序可以链接到的库。
- 演示无头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
2016年9月20日更新:看起来Chrome最终将获得“ - 无头”参数: https ://bugs.chromium.org/p/chromium/issues/detail?id = 612904
关于BlinkOn 6 的演讲 (2016年6月16日,17日)
更新 --headless
11月29日:为--headless
flag设计doc: https : --headless
--headless
12月13日更新: -很快将在Canary版本中提供 - --headless
标志
更新于--headless
3月12日: Chrome 57有一个无--headless
标志工作。 等待Selenium和其他工具赶上来。 用户指南: https : //chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
这个家伙设法通过使用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
然后在显示屏上运行浏览器:
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
或者你可以看看PhantomJS项目,这是一个无头的WebKit实现。
您可以设置一个Linux VM并在其中使用xvfb。
在debian / ubuntu上安装:
sudo aptitude install xvfb
启动Chrome无头并访问http://example.com :
xvfb-run --server-args='-screen 0, 1024x768x16' google-chrome
-start-maximized http://example.com > /dev/null &
如果你把它作为子子进程启动,它会以无头模式启动。 除此之外:
win hide
Chromium Embedded Framework项目似乎可能适合您的用例。 我没有这个项目的个人经验,但我听说过好东西,并且它有一个可靠的API,你应该能够为你的目的利用它。
我还没有足够的声誉发表评论,但是想让你们知道,Vanuan提到的镀铬无头模式实际上与Selenium webdriver配合使用。
在Java中,您可以使用以下代码通过chromeDriver将标志传递给chrome:
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
ChromeDriver chromeDriver = new ChromeDriver(options);
我最近发现这篇文章提到了几个似乎可以做到的命令行选项。 使用这些关键字,我搜索了这段代码 ,似乎证实这些选项存在。
// Does not automatically open a browser window on startup (used when
// launching Chrome for the purpose of hosting background apps).
const char kNoStartupWindow[] = "no-startup-window";
// Causes Chrome to launch without opening any windows by default. Useful if
// one wishes to use Chrome as an ash server.
const char kSilentLaunch[] = "silent-launch";
我成功地使用--no-startup-window
运行Chrome,实际上它没有任何窗口启动。 看起来它正确启动,它催生了所有典型的孩子,但我试图让它加载到里面的网站似乎并没有实际访问。 这种无头模式可能只适用于运行应用程序,而不适用于无头访问网站*),但它看起来非常有前途,因为正常的工作树已经设置,只是没有窗口。
第二个选项--silent-launch
使chrome进程非常安静。 我没有注意到任何生成的孩子,这个过程很快就会消失。 我怀疑它是否适用于这种情况。
在我尝试使用这些选项失败之后,我专注于不太复杂的方法。 在列表的底部有两个选项:
// Specify the initial window position: --window-position=x,y
const char kWindowPosition[] = "window-position";
// Specify the initial window size: --window-size=w,h
const char kWindowSize[] = "window-size";
我运行Chrome并选择将其完全移出工作区域:
--window-size=800,600 --window-position=-800,0
并且它感觉很脏,确定它不是真正的无头,但是窗口仍然不在我的视线范围内,而且一切都是用chrome的启动选项完成的,没有外部工具发送低级别的窗口隐藏消息。
*)是的,我知道尝试做奇怪的事情。 基本上我试图摆脱测试期间由Karma保留的Chrome窗口。 我知道我可以切换到PhantomJS,但我特别需要在Chrome中运行它们,窗口弹出是......呃......从长远来看令人不安。
它目前正在开发中,您可以从这里阅读更多相关信息: https : //chromium.googlesource.com/chromium/src/+/master/headless/README.md
Headless Chromium是一个在无头/服务器环境中运行Chromium的库。 预期的用例包括加载网页,提取元数据(例如,DOM)和从页面内容生成位图 - 使用Chromium和Blink提供的所有现代Web平台功能。
它目前适用于Linux,有一个很好的演示 。
我还能用NightwatchJS制作镀铬无头工作。 这是让我使用它的配置:
"chromeHeadless": {
"desiredCapabilities": {
"browserName": "chrome",
"chromeOptions": {
"args": ["--headless"],
"binary": "/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary"
}
}
}
Chrome 59能够将实例创建为无头。 查找以下教程https://www.automation99.com/2017/07/how-to-use-chrome-headless-using.html?m=1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.