【问题标题】:How to access current value in a text input field with puppeteer如何使用 puppeteer 访问文本输入字段中的当前值
【发布时间】:2021-05-29 09:52:48
【问题描述】:

我正在尝试使用 puppeteer 和 xpath 自动从 已填写的表单中检索表单值。

我已经按如下方式自动填充文本输入字段,但使用 .evaluate() 进行反向操作不起作用:

[fieldHandle] = await page.$x("//label[text() = 'My Label']/../following-sibling::td[1]//input")
await page.evaluate((x, y) => x.value = y, fieldHandle, 'newValue')

这是我最近的尝试 - 仍然没有成功...

let [fieldHandle] = await page.$x("//label[text() = 'My Label']/../following-sibling::td[1]//input")
let fieldRaw = await fieldHandle.getProperty('textContent')
let fieldValue = await fieldRaw.jsonValue()

希望有人知道如何实现这一目标!

【问题讨论】:

    标签: javascript node.js xpath puppeteer


    【解决方案1】:

    使用评估应该可以工作:

    console.log(await page.evaluate(x => x.value, fieldHandle)));
    

    【讨论】:

    • 轰隆隆!那行得通...将 .evaluate() 结果分配给变量是成功的! let fieldValue = await page.evaluate(x => x.value, fieldHandle)
    【解决方案2】:

    这在我的情况下有效

    const name = await page.$eval("#usernameInput", (input) => {
     return input.getAttribute("value")
     });
    

    【讨论】:

    • 您好,请您将代码放在代码括号内以获得更好的阅读体验。欢迎来到 SO :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    相关资源
    最近更新 更多