Я пытаюсь заставить кукловода перейти ко всем тегам на странице и загрузить их, добавить их в массив и вернуть. Моя версия кукловода - 1.5.0. Вот мой код:
module.exports.scrapeLinks = async (page, linkXpath) => {
page.waitForNavigation();
linksElement = await page.$x(linkXpath);
var url_list_arr = [];
console.log(linksElement.length);
i=1;
for(linksElementItem in linksElement)
{
const linksData = await page.$x('(' + linkXpath + ')[' + (i + 1) +']');
if (linksData.length > 0) {
linksData[0].click();
console.log(page.url());
url_list_arr.push(page.url());
}
else {
throw new Error('Link not found');
}
}
return url_list_arr;
};
Однако с этим кодом я получаю
UnhandledPromiseRejectionWarning: Ошибка: узел либо не виден, либо
не HTMLElement
Я также узнал через документы, что невозможно использовать xpath для функции page.click. Есть ли способ достичь этого?
Также нормально, если есть функция для получения всей ссылки со страницы, но я не смог найти ее в документации.