【发布时间】:2018-01-03 23:15:28
【问题描述】:
我一直在看以下关于 Headless Chrome 的文章:
https://developers.google.com/web/updates/2017/04/headless-chrome
我刚刚将 Windows 10 上的 Chrome 升级到版本 60,但是当我从命令行运行以下任一命令时,似乎什么都没有发生:
chrome --headless --disable-gpu --dump-dom https://www.google.com/
chrome --headless --disable-gpu --print-to-pdf https://www.google.com/
我正在从以下路径(Windows 上 Chrome 的默认安装路径)运行所有这些命令:
C:\Program Files (x86)\Google\Chrome\Application\
当我运行命令时,某些东西似乎会处理一秒钟,但我实际上什么也没看到。我做错了什么?
谢谢。
编辑:
正如 Mark Rajcok 所说,如果将 --enable-logging 添加到 --dump-dom 命令,它会起作用。此外,--print-to-pdf 命令在 Chrome 61.0.3163.79 中也能正常工作,但您可能必须为输出文件指定不同的路径才能获得保存所需的权限。
因此,以下两个命令对我有用:
"C:\Program Files (x86)\Google\Chrome\Application\chrome" --headless --disable-gpu --enable-logging --dump-dom https://www.google.com/
"C:\Program Files (x86)\Google\Chrome\Application\chrome" --headless --disable-gpu --print-to-pdf=D:\output.pdf https://www.google.com/
我想下一步是能够通过带有 DOM 选择器之类的 PhantomJS 之类的转储 DOM,但我想这是一个单独的问题。
编辑#2:
值得一提的是,我最近遇到了一个用于 Headless Chrome 的 Node API,名为 Puppeteer (https://github.com/GoogleChrome/puppeteer),它非常易于使用并提供了 Headless Chrome 的所有功能。如果您正在寻找一种使用 Headless Chrome 的简单方法,我强烈推荐它。
【问题讨论】:
-
刚刚在 Chrome 61.0.3163.79 中尝试过,但还是不行。
-
我整个晚上都遇到同样的问题。这对您来说可能是一个不同的问题,但在我的情况下,这是一个具有在程序文件目录中写入文件的相关权限的问题。同样,仅尝试 C:\output.pdf 不起作用,但是 c:\users\username\output.pdf 工作正常。同样,如果您更改文件夹 '...application/chrome' 的权限,它可以正常工作,就像 --print-to-pdf 没有进一步的参数。
-
这也有效:
--screenshot=C:\Temp\screenshot.png
标签: google-chrome command-line windows-10 headless-browser google-chrome-headless