Если ваша цель - получить текст, вы можете обойти это с помощью JS на странице DOM.
Изменить это:
const lis = await page.$$(".data-table > tbody > tr > td");
const appInfo = await page.$("a.icon");
for (const content of lis) {
const name = await content.$("div.appname");
const gameName = await page.evaluate(name => name.innerText, name);
console.log("Game Name: ", gameName);
}
К этому:
const appInfo = await page.$("a.icon");
const texts = await page.evaluate(() => {
const textsToReturn = [];
const elems = Array.from(document.querySelectorAll('.data-table > tbody > tr > td'));
for (const el of elems) {
textsToReturn.push(el.querySelector('div.appname').innerText)
}
// If I'm not mistaken, puppeteer doesn't allow to return complicated data structures, so we'll stringify
return JSON.stringify(textsToReturn)
})
// And here is your game names
console.log('Game names', JSON.parse(texts));
N.B .: Этот код не был проверен на реальной HTML-странице, так как нет примера.
Но вы должны получить представление о том, как переопределить логику кукловода с помощью нативных методов DOM, чтобы достичь цели.