我正在尝试使用puppeteer获取表中某个类中所有元素的列表,以便可以迭代所有元素。事实是,滚动时会动态加载表,因此元素会根据您滚动的距离而从DOM中显示/消失。
使用简单的$$查询无效,并且返回的元素数量不正确,只是页面上已经可见的内容。
async getAllElements() {
const elms = await this._page.$$('td.class');
return elms;
}
我希望查询能够给我页面上所有可能的元素,但是由于滚动实现,我只能得到页面上当前可见的元素。
答案 0 :(得分:0)
最终弄清楚了我自己的答案。
要获取列表中的每个元素,无论它是否已出现在DOM中,请使用以下命令:
await page.$eval('#myTableSelector', e => {
//Do something with e.items
});
虽然它没有像我希望的那样返回一个ElementHandles数组,但它确实使我可以获得所需的所有信息,就像在开发工具中使用控制台一样。