仅在数字输入字段上使用 page.type

Use page.type on only numeric input fields

我正在尝试使用 Puppeteer 在网页上填写表格,但有些输入字段只接受数字输入,例如:

<input type="text" inputmode="numeric">

但我无法像处理普通输入字段那样使用 page.type 写入这些输入字段。当我尝试时,我收到错误消息:

TypeError: text is not iterable

在所有其他输入上,page.type 工作得很好。

发生此错误是因为您试图使用数字而不是字符串类型调用 page.type() 函数。

page.type(selector, text[, options])

  • 选择器<string> 要键入的元素的选择器。如果有多个元素满足选择器,则使用第一个
  • 文本 <string> 要输入到焦点元素中的文本。
  • 选项<Object>
    • delay <number> 按键之间的等待时间(以毫秒为单位)。默认为 0。
  • returns: <Promise>

例如:

await page.type('#mytextarea', '123')

或者您可以使用 eval 函数设置值:

await page.$eval('selector', field => field.value = 12);