如何使用 puppeteer 访问文本输入字段中的当前值

rem*_*.io 10 javascript xpath node.js puppeteer

我正在尝试使用 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')
Run Code Online (Sandbox Code Playgroud)

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

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()
Run Code Online (Sandbox Code Playgroud)

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

har*_*ded 8

使用评估应该有效:

console.log(await page.evaluate(x => x.value, fieldHandle)));
Run Code Online (Sandbox Code Playgroud)


pea*_*utz 5

这对我来说有效

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