índice.js
(async () => { await global.initialize(); let lineCount = await global.count(); let globalData = []; let childNum = null; let lineBaseSelector = null; for(let i = 1; i < lineCount; i++) { childNum = i + 1; lineBaseSelector = '#alx-content > div.row-fluid.TopSites.AlexaTool.padding20 > section.page-product-content.summary.padding20 > span > span > div > div > div > div:nth-child(' + `${childNum}` + ')'; let details = await global.getDetails(lineBaseSelector); globalData.push(details); }global.js
getDetails: async (lineBaseSelector) => { let url = await page.url(); await page.waitForSelector(lineBaseSelector); let details = await page.evaluate(() => { return { rank: document.querySelector('div[class="td"]').innerText, name: document.querySelector('p > a').innerText, url: document.querySelector('p > a').getAttribute('href') } }); return details; },LineBaseSelector cambia dinámicamente y quiero obtener todos los datos que pertenecen a estos selectores como una lista. Pero la lista de datos que obtengo consta solo de los primeros datos. Hay 50 datos, pero puedo obtener solo el primero 50 veces. También intenté cambiar el querySelector como " rank: document.querySelector(lineBaseSelector + 'div[class="td"]').innerText, " pero tuve un error llamado Error no detectado: la evaluación falló: ReferenceError: lineBaseSelector no está definido. Por favor ayúdame a solucionar esto. Muchas gracias.