Javascript 木偶演员:执行页面。在页面内单击()。$eval

Javascript 木偶演员:执行页面。在页面内单击()。$eval,javascript,puppeteer,browser-automation,playwright,Javascript,Puppeteer,Browser Automation,Playwright,如果pageFunction本身返回承诺,and方法都会返回一个值(我想这对于puppeter来说是非常罕见的情况,如果它们不返回承诺,大多数puppeter方法都会返回承诺) 页面$$eval(选择器,页面函数[,…参数]) 记录的用例都返回一个值: const divCount=wait page.$$eval('div',divs=>divs.length); const options=wait page.$$eval('div>span.options',options=>option

如果
pageFunction
本身返回承诺,and方法都会返回一个值(我想这对于puppeter来说是非常罕见的情况,如果它们不返回承诺,大多数puppeter方法都会返回承诺)

页面$$eval(选择器,页面函数[,…参数])

记录的用例都返回一个值:

const divCount=wait page.$$eval('div',divs=>divs.length);
const options=wait page.$$eval('div>span.options',options=>options.map(option=>option.textContent));
问题: <> >但是我们可以使用<代码>页.$EVA//C>/<代码>页。$$EVA/COD>执行只与浏览器交互而不返回可用值的方法(如<代码>页。单击“< /代码>或<代码>页>类型< /代码>”),特别是如果出于非常相似的原因,我们认为当我们不使用返回的数组时,这是一种情况吗? 我很好奇,因为这样我们就可以简化使用

它确实有效,但我们应该使用它吗?

const clickAll=wait page.$$eval('button',links=>links.forEach(link=>link.click());

注意:将其设为
const
对我来说意义不大,因为我们不能在其他任何地方使用
clickAll
引用。我宁愿使用它本身而不声明它。

您可以将其视为一个普通的JavaScript <代码>函数< /> >它可以返回一个值或不返回,并且可以使用该返回函数。您不需要该
clickAll
变量

wait page.$$eval('button',links=>links.forEach(link=>link.click());

您可以说$$eval可以返回一个值,但不需要返回。谢谢@hardkoded!同时,我也与这个解决方案交上了朋友:)因此,使用它本身(不声明它是
常量)应该很好,没有预期的副作用?没有副作用,你不需要
点击所有
,请将它作为一个独立的答案发布在下面好吗?谢谢:)