对木偶戏进行普通操作的最佳(或标准)方法是什么?
考虑一下:
<div class="C1">
<img alt="Bla Bla" class="C2" scrset="lots of stuff here" scr="THIS_IS_WHAT_I_WANT">
我要访问src文本。最好的方法是什么?
或者在网页上有此情况的另一种情况:
<a class="D1 D2 D3" role="button" </a>
我想检查上述按钮之类的元素的存在(和不存在)。
答案 0 :(得分:2)
您的第一个示例(获取src文本):
const puppeteer = require('puppeteer')
async function run() {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto(`insertYourURLhere.com`, {
timeout: 0,
waitUntil: ['domcontentloaded']
})
// getting a handle on the div first
const outerDiv = await page.$('div.C1')
// proceeding from the selected div
const scrAttribut = await outerDiv.$eval('img.C2', el => el.getAttribute('scr'))
console.log(scrAttribut)
browser.close()
}
run()
您的第二个示例(检查元素的存在):
对外部div使用与上面所示相同的方法来找到按钮:
page.$(selector)
然后检查返回值。
如果没有元素与选择器匹配,则返回值解析为 null。
答案 1 :(得分:0)
我的举动的第二部分由Carsten解决,我非常感谢他!
但是,他的第一部分解决方案无效。
这就是我的工作方式:
const values = await page.evaluate(
() => [...document.querySelectorAll('.C2')]
.map(element => element.getAttribute('src'))
);