Tengo un problema con un guión de Puppeteer que estoy escribiendo. Logré que hiciera el 90% de lo que debe hacer, que es usar la página del mapa del sitio para cualquier sitio e ir a cada página antes de tomar una captura de pantalla de página completa. También escupe un archivo console.log de una matriz masiva con todas las URL del sitio. Lo que debo hacer y no puedo hacer bien es extraer la URL de la página para cada página que se abre durante su bucle for y usarla como nombre para la captura de pantalla. Entonces, si va a google.com, la imagen 1 se llama "google.com/.png", luego "google.com/dogpictures.png", etc.
Lo incluyo a continuación, me encantaría escuchar sus comentarios:
const puppeteer = require("puppeteer"); (async () => { 'use strict' const smta = require('sitemap-to-array') const options = { returnOnComplete: true} const sitemapUrl = 'https:____.org/page-sitemap.xml' smta(sitemapUrl, options, (error, list) => { if (error) { console.error(error) } else { console.log(list) useSitemapWithPuppeteer(list); } }) const useSitemapWithPuppeteer = async (array) => { const urls = array.map(obj => obj.loc); const browser = await puppeteer.launch({ headless: false, defaultViewport: null, }); for (let i = 0; i < urls.length; i++) { const url = urls[i]; const page = await browser.newPage(); page.setDefaultNavigationTimeout(0); await page.goto(`${url}`, { waitUntil: "networkidle2" }); const currentURL = page.url; await page.screenshot({ path: "test" + i + ".png", fullPage: true }); } await browser.close(); }})();