let scrapeProduct = async (url) => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(url); for(let i = 0;i < 10; i++) { const [el] = await page.$x('//*[@id="spnGB27562Price"]') const txt = await el.getProperty('textContent'); let rawTxt = await txt.jsonValue(); rawTxt = Number(rawTxt); average += rawTxt; } return average / 10; }Estoy tratando de recorrer el ID "spnGB27562Price". Hay 10 ID (spnGB27562Price0 a spnGB27562Price9). No parece que pueda agregar una variable en la expresión xpath en mi código. ¿Cómo haría esto? Solo estoy tratando de promediar 10 números en una página web.
Simplemente puede usar la sintaxis de back-tick ( ` ) para insertar una variable en su cadena xpath de esta manera:
const [el] = await page.$x(`//*[@id="spnGB27562Price${i}"]`); O, alternativamente, puede simplemente agregar dos cadenas junto con el uso de comillas simples ( ' ):
const [el] = await page.$x('//*[@id="spnGB27562Price' + i + '"]);