如何使用Puppeteer获取HTML元素的所有子元素值

9

我正在使用puppeteer,我想获取表格列名的值。

<tbody>
<tr class="GridHeader" align="center" style="background-color:Black;">
    <td class="HeaderStyleOfdatalist">XYZ</td>
    <td>0500</td>
    <td>0550</td>
    <td>0600</td>
    <td>0650</td>
</tr>
</tbody>

我需要获取这些td值的数组。 我尝试使用page.$(selector),但无法理解输出结果。 我还尝试了:
let idAttribute = await page.$eval('.GridHeader', e => e.childNodes);
console.log(idAttribute)

但无法获取这些td值的数组。

请帮助我循环这些值。

编辑: 找到了问题的答案并在答案部分发布了它。

1个回答

22

我能够使用以下方法得出解决方案:

const data = await page.evaluate(() => {
        const tds = Array.from(document.querySelectorAll('.GridHeader td'))
        return tds.map(td => td.textContent)
    });

console.log(data) // ['xyz', '0500', '0550','0600', '0650']

如何获取<td>的子元素,例如,如果元素类似于<td><div><a>0500</a></div></td>,我需要访问0500,该怎么办? - shubhamsingh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接