【问题标题】:puppeteer insert variable into page.$evalpuppeteer 将变量插入 page.$eval
【发布时间】:2020-07-14 23:51:16
【问题描述】:

我想在输入字段中插入一个变量... 根据 puppeeteer 文档,你是如何做到的:Documentaion page.$eval(selector, pageFunction[, ...args])

let VARIABLE = "01.01.2020"
await page.$eval("input[name=date]", el => (el.value = VARIABLE));

我正在尝试将 el.value 设置为我的变量... 得到未定义的错误..如何将我的变量传递给 el.value ? ??

【问题讨论】:

    标签: javascript puppeteer


    【解决方案1】:

    你可以像这样使用page.type,

    const VARIABLE = "01.01.2020"
    await page.type('input[name=date]',VARIABLE);
    

    您可以参考该主题以获取更多信息 - https://github.com/puppeteer/puppeteer/blob/master/docs/api.md#pagetypeselector-text-options

    【讨论】:

    • 我将 page.type 用于没有先前文本的输入字段。日期字段..总是预设文本,所以我试图使用 eval 来操作 dom。
    【解决方案2】:

    你也可以试试这个:

    await page.$eval('input[name="date"]', (el, value) => el.value = value, VARIABLE);
    

    【讨论】:

    • 我不明白语法 el.value = value, VARIABLE 但它确实有效 ;) ... 从来没有做过这种事情
    • @balui 传递给$eval 的函数在与nodejs(puppeteer)不同的页面上下文中执行,因此它对VARIABLE 是什么视而不见。你需要将VARIABLE传递给$eval函数,你这样做的方式就是这样。
    • 我明白了。你能把我链接到这个特定事物的资源/文档吗?我不确定要寻找什么.. otehrwise 我会用谷歌搜索自己 xD 如果不是很好。求帮助
    • @balui puppeteer 文档涵盖了您需要的一切。阅读第三个要点here
    • 我的意思是 el.value = value, VARIABLE 我只是从来没有学过或听说过这种语法。你用逗号代替当前值。所以它让我感到困惑......那些东西也不在文档中?所以 idk 你是怎么想出这个解决方案的 ;) ...它就像一些我从未听说过的基本 js 哈哈... xD
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    相关资源
    最近更新 更多