You need to enable JavaScript to run this app. 调用page.type向网页Description输入文本报找不到节点,如何定位正确selector
优惠活动
大模型
产品
解决方案
定价
更多

调用page.type向网页Description输入文本报找不到节点,如何定位正确selector

报错原因
  • input[name="DescriptionJson"]是隐藏的状态存储字段,仅用于EditorJS提交时承载序列化后的内容,本身不支持输入,若脚本执行早于页面DOM渲染,也会出现找不到节点的问题。
  • 真正的输入载体是EditorJS动态生成的内部带contenteditable="true"属性的段落节点,这类节点不会在页面初始DOM中直接存在,没有等待渲染就直接执行type操作,必然触发找不到节点的错误。
  • 直接对#DescriptionJson_editor等父容器执行输入操作无效,可编辑事件只会绑定到内部的段落节点上。
正确实现代码
// 等待可编辑节点完成渲染,最长等待10秒
await page.waitForSelector(
  '#DescriptionJson_editor div.ce-paragraph[contenteditable="true"]',
  { timeout: 10000 }
);
// 聚焦节点激活编辑器输入状态
await page.focus('#DescriptionJson_editor div.ce-paragraph[contenteditable="true"]');
// 输入目标文本
await page.keyboard.type('Lorem ipsum dolor sit amet');
补充注意事项
  • 不要手动修改input[name="DescriptionJson"]的value,EditorJS在表单提交时会自动将当前编辑器内的内容序列化,覆盖该字段的原有值,手动修改的内容会被清空。
  • 如果等待后仍找不到节点,先检查编辑器是否嵌套在iframe内,需要先通过page.frames()定位到对应iframe的frame对象,再在该frame上执行上述等待、聚焦、输入操作。

内容的提问来源于stack exchange,提问作者Ada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 09:36:07