Код внутри page.evaluate запускается внутри браузера, код снаружи выполняется на узле.
Когда вы возвращаете элементы с помощью document.querySelectorAll, он возвращает NodeList, который затем сериализуется, и данные теряются (или ссылаются по-другому) из-за сериализации. Это означает, что allNodes[row].textContent
не будет работать.
Самый простой способ - вернуть данные изнутри страницы. Оценить.
const allNodes = await page.evaluate(() => {
const elements = [...document.querySelectorAll("#cntContent_lstMain tr:not(:first-child) td:nth-child(2)")]
return elements.map(element=>element.textContent)
})
Это даст вам textContent для всехдоступные элементы с этим селектором.