page。$$ eval()不能按预期方式工作(操纵up)

时间:2018-10-01 17:04:22

标签: javascript node.js google-chrome-devtools puppeteer google-chrome-headless

在页面中,有一堆元素属于特定类。

下面的代码不会显示编号。元素:

await page.$$eval(scoreSelector, (ele) => {
    console.log(ele.length);

这可按预期进行:

curLiveScoreElements = await page.$$(scoreSelector)

请澄清。

2 个答案:

答案 0 :(得分:1)

使用page.$$eval()时,您可以通过以下方式获取有问题的元素School

length

您还可以使用page.$$()获得一个ElementHandle数组,就像您提到的那样,您可以在其中记录结果的长度:

const curLiveScoreElements = await page.$$eval( scoreSelector, ele => ele.length );

console.log( curLiveScoreElements );

或者,您可以监听页面中发生的'console'事件,并显示结果:

const curLiveScoreElements = await page.$$( scoreSelector );

console.log( curLiveScoreElements.length );

答案 1 :(得分:0)

据我所知,您希望看到一些控制台输出。并且您在命令行界面 (CLI) 中看不到它,因此您认为代码不起作用。

请注意在处理程序中调用的代码($$eval 的第二个参数)是在浏览器中执行的。所以你会在浏览器中找到你的控制台输出,而不是在 CLI 中。 要在 CLI 中查看浏览器的控制台输出,您必须拦截浏览器控制台调用。 你可以在 https://stackoverflow.com/a/46245945/3452033

上得到一个例子