使用噩梦 – 屏幕截图select器制作多个屏幕截图

我有一个“li”元素的网页。 我需要为每个“li”元素制作截图并将其保存到新文件中。 我正在尝试使用它的噩梦 – 截图select器。 但是我得到了一些截图相同,但名称不同的文件(从我的数组中)。

这是我的代码。

const Nightmare = require('nightmare'); const fs = require('fs'); const screenshotSelector = require('nightmare-screenshot-selector'); Nightmare.action('screenshotSelector', screenshotSelector); function savePicture(picture) { picture = ['v1', 'v2', 'v3']; let browser = Nightmare({ show: false, webPreferences: { partition: 'nopersist' } }); browser .goto('https://www.google.com') picture.forEach(v => { browser .wait(7000) .screenshotSelector(`li[class="${v}"]`) .then(function (data) { fs.writeFileSync(`img/${v}.png`, data) }) .catch((error) => { console.log('Error loading the page', error) }) }) browser.end(); } 

我插入了一个.end()调用,为我工作。 稍微修改代码,抓取Google主页的两个区域:

 function savePicture(picture) { picture = ['div#hplogo', 'div.tsf-p']; let browser = Nightmare({ show: false, webPreferences: { partition: 'nopersist' } }); browser .goto('https://www.google.com') picture.forEach(v => { browser .wait(2000) .screenshotSelector(v) .then(function (data) { fs.writeFileSync(`img/${v}.png`, data) }) .then(()=> { browser.end(); }) .catch((error) => { console.log('Error loading the page', error) }) }) }