如何在 puppeteer Node.js 中将 const 添加到 await page.$eval?

Posted

技术标签:

【中文标题】如何在 puppeteer Node.js 中将 const 添加到 await page.$eval?【英文标题】:How add const to await page.$eval in puppeteer Node.js? 【发布时间】:2021-10-22 17:59:43 【问题描述】:

我想在单击按钮之前编辑 href 链接。我想使用常量。我遇到了问题:

Error: Evaluation failed: ReferenceError: dourl2 is not defined

我的代码如下所示:

#1 从按钮获取 href 链接

    const dourl = await page.$eval("#dodaj_do_koszyka"+ link, el => el.href);

#2 将“000”添加到链接:

    const dourl2 = dourl + '000';

#3 将更改后的 href 放到按钮上:

    await page.$eval("#dodaj_do_koszyka" + link, element  => element.href = 'dourl2' );

如何正确地将 const 放在这个地方?此方法产生错误:

'dourl2'

谢谢

【问题讨论】:

你确定element.href = 'dourl2' 被引用了吗? 'dourl2' 是一个字符串,它不会导致这个错误。 【参考方案1】:

如果我理解正确,你只需要使用args参数(见docs):

await page.$eval(
  "#dodaj_do_koszyka" + link,
  (element, url) =>  element.href = url; ,
  dourl2,
);

【讨论】:

以上是关于如何在 puppeteer Node.js 中将 const 添加到 await page.$eval?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js puppeteer - 如何设置导航超时?

Node Js & Puppeteer - 如何选择包裹在 Anchor 标签内的文本

如何使用 puppeteer 和 Node js 为 pdf 页面生成屏幕截图

使用Puppeteer将Node悬停在Node.js中的element和getComputedStyle上?

Node.js:如何重启 Tor 客户端

使用 Puppeteer 和 Node.JS 在网站上的 iFrame 中找不到隐藏的输入元素