按类名收集元素,然后单击每个元素 - Puppeteer [英] Collect elements by class name and then click each one - Puppeteer
本文介绍了按类名收集元素,然后单击每个元素 - Puppeteer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用Puppeteer,我想获取具有特定类名的页面上的所有元素然后循环并单击每一个
Using Puppeteer, I would like to get all the elements on a page with a particular class name and then loop through and click each one
使用jQuery我可以实现这个用
Using jQuery I can achieve this with
var elements = $("a.showGoals").toArray();
for (i = 0; i < elements.length; i++) {
$(elements[i]).click();
}
我如何使用Puppeteer实现这一目标?
How would I achieve this using Puppeteer?
我在下面尝试了Chridam的答案,但我无法开始工作(虽然回答有用,所以感谢到那里)所以我试过以下这工作
Tried out Chridam's answer below but I couldn't get to work (though answer helpful so thanks due there) so I tried the following and this works
await page.evaluate(() => {
let elements = $('a.showGoals').toArray();
for (i = 0; i < elements.length; i++) {
$(elements[i]).click();
}
});
推荐答案
使用 page.evaluate
执行JS:
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
await page.evaluate(() => {
let elements = document.getElementsByClassName('showGoals');
for (let element of elements)
element.click();
});
// browser.close();
});
这篇关于按类名收集元素,然后单击每个元素 - Puppeteer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文