gpt4 book ai didi

javascript - 在 Puppeteer 中获取 elementHandle 的兄弟

转载 作者:行者123 更新时间:2023-11-29 18:57:06 24 4
gpt4 key购买 nike

我在做

const last = await page.$('.item:last-child')

现在我很想根据 last 获取前面的元素。即

const prev = last.$.prev()

关于如何做到这一点有什么想法吗?

谢谢!

最佳答案

你应该使用 previousElementSibling里面evaluateHandle ,像这样:

const prev = await page.evaluateHandle(el => el.previousElementSibling, last);

这里是完整的例子:

const puppeteer = require('puppeteer');

const html = `
<html>
<head></head>
<body>
<div>
<div class="item">item 1</div>
<div class="item">item 2</div>
<div class="item">item 3</div>
</div>
</body>
</html>`;

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(`data:text/html,${html}`);

const last = await page.$('.item:last-child');
const prev = await page.evaluateHandle(el => el.previousElementSibling, last);

console.log(await (await last.getProperty('innerHTML')).jsonValue()); // item 3
console.log(await (await prev.getProperty('innerHTML')).jsonValue()); // item 2

await browser.close();
})();

关于javascript - 在 Puppeteer 中获取 elementHandle 的兄弟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48861261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com