Chromium/chrome 运行 headless:使用 --screenshot 时等待页面加载?
Chromium/chrome running headless: wait for page load when using --screenshot?
尝试使用 headless Chrome 截取屏幕截图,但它在加载页面之前执行 --screenshot。在 MacOS 运行 zsh 上,我这样调用它:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome https://example.com/foo.html --screenshot=/Users/myhome/foo.png
有没有办法等到页面加载后再截图?
事实证明,答案是这些命令行选项效果不佳,已被 Puppeteer 取代。这是我创建的脚本(为简洁起见对值进行硬编码)。
这是完整的代码。
const puppeteer = require('puppeteer');
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
async function run () {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://twitter.com/gnuman1979/status/1239523796542992387');
await sleep(2000)
await page.screenshot({path: './foo.png'});
browser.close();
}
run();
另存为 foo.js,然后 运行 使用节点:
$ node foo.js
尝试使用 headless Chrome 截取屏幕截图,但它在加载页面之前执行 --screenshot。在 MacOS 运行 zsh 上,我这样调用它:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome https://example.com/foo.html --screenshot=/Users/myhome/foo.png
有没有办法等到页面加载后再截图?
事实证明,答案是这些命令行选项效果不佳,已被 Puppeteer 取代。这是我创建的脚本(为简洁起见对值进行硬编码)。
这是完整的代码。
const puppeteer = require('puppeteer');
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
async function run () {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://twitter.com/gnuman1979/status/1239523796542992387');
await sleep(2000)
await page.screenshot({path: './foo.png'});
browser.close();
}
run();
另存为 foo.js,然后 运行 使用节点:
$ node foo.js