在一个页面中,有一堆特定类的元素。
下面的代码不打印编号。元素数量:
await page.$$eval(scoreSelector, (ele) => {
console.log(ele.length);
然而,这按预期工作:
curLiveScoreElements = await page.$$(scoreSelector)
请澄清。
最佳答案
当使用page.$$eval()
时,您可以通过以下方式获取相关元素的长度
:
const curLiveScoreElements = await page.$$eval( scoreSelector, ele => ele.length );
console.log( curLiveScoreElements );
您还可以使用page.$$()
获得 ElementHandle
数组,就像您提到的那样,您可以在其中记录结果的长度:
const curLiveScoreElements = await page.$$( scoreSelector );
console.log( curLiveScoreElements.length );
或者,您可以收听 'console'
页面内发生事件,并显示结果:
page.on( 'console', msg => {
for ( let i = 0; i < msg.args().length; i++ ) {
console.log( `${i}: ${msg.args()[i]}` );
}
});
const curLiveScoreElements = await page.$$( scoreSelector );
await page.evaluate( ele => { console.log( ele.length ); }, curLiveScoreElements );
关于javascript - page.$$eval() 未按预期工作(Puppeteer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52595702/