所以只需使用https://try-puppeteer.appspot.com/
此代码可以正常工作:
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://demo.spoonthemes.net/themes/couponis/');
await page.setViewport({width: 1280, height: 978, deviceScaleFactor: 1});
await page.screenshot({path: 'example2.jpg'});
await browser.close();
但如果我将deviceScaleFactor更改为2(因为我在视网膜屏幕上),我会收到此错误:运行代码时出错。错误:协议错误(Page.captureScreenshot):目标已关闭。
任何想法为什么?如果我将URL更改为example.com似乎也可以工作,但如果我尝试其他网站则不行。
答案 0 :(得分:1)
此错误从Puppeteer v1.5.0开始不再出现。
您尝试访问的网站的源代码中包含maximum-scale=1
:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
因此,deviceScaleFactor: 2
似乎由于这一事实而失败。