Эти строки находятся внутри вашего цикла for:
browser.close();
return resolve(products);
Таким образом, в рамках первой итерации вы закрываете браузер и возвращаете функцию.Вы должны убрать это из цикла for и сохранить products
внутри массива, например:
const urls = /* ... */;
const productsList = [];
for (let i = 0; i < urls.length; i++) {
const url = urls[i];
await page.goto(url);
let products = await page.evaluate(/* ... */);
productsList.push(products);
}
browser.close();
return resolve(productsList); // resolve with an array containing the aggregated products
. Если вы ищете более элегантное решение (для параллельного сканирования страниц), вы можетехочу взглянуть на библиотеку кукловод-кластер (отказ от ответственности: я автор).