Я новичок в Puppeteer и не совсем уверен, что я делаю здесь не так, но в DevTools я получаю правильный вывод. Тем не менее, я хочу создать файл со значениями и продолжаю получать undefined
.
Я думаю, что это как-то связано со списками узлов и невозможностью их вернуть, но я понятия не имею, как это исправить.
Это работает в DevTools:
let arr2 = Array.from(document.querySelectorAll(
"#data > div.data-wrapper > div > div > table > tbody tr"))
.map(row => (
{site:row.querySelector('td:nth- child(2)').innerText,
pass:row.querySelector('td:nth- child(10)').innerText,
user:row.querySelector('td:nth-child(9)').innerText
}))
//with a console.log()
Я также пытался row.evaluate(()=>)
, который не работал для меня.
Вот мой код, который не работает:
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.authenticate({ username: "username", password: "password" });
await page.goto("https://website/.../all");
await page.waitFor(120000); // beacuse It loads everything slowly and times out the default 30000
console.log("started evalating");
var data = await page.evaluate(() => {
Array.from(
document.querySelectorAll(
"#data > div.data-wrapper > div > div > table > tbody tr"
)
).map(row => {
return {
site: row.querySelector("td:nth-child(2)").innerText,
pass: row.querySelector("td:nth-child(10)").innerText,
user: row.querySelector("td:nth-child(9)").innerText
};
});
});
console.log(data);
})();
//I want an array of objects but the result throws errors or comes back with [undefined,......]