【发布时间】:2018-12-04 05:14:36
【问题描述】:
我试图让 puppeteer 转到页面中的所有标签并加载它们,将它们添加到数组中并返回它。我的 puppeteer 版本是 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:错误:节点不可见或 不是 HTML 元素
我还通过文档发现无法在 page.click 函数上使用 xpath。有没有办法做到这一点?
如果有从页面中获取所有链接的功能也可以,但是我在文档中找不到。
【问题讨论】: