用 CDP 协议做浏览器自动化(二):处理富文本编辑器与隐藏校验项
背景
上一篇记录了 CDP 的基础连接与真实输入事件。这一篇补充三个更容易踩坑的环节:富文本编辑器写入、隐藏必选项、以及被前端禁用的提交按钮。
一、三类富文本编辑器的写入方法
TinyMCE:编辑器运行在 iframe 内(editor_ifr)。方法是先点击 iframe 在父页面的坐标让编辑区获得焦点,再发送 Input.insertText。注意点击前要把 iframe 滚动到视口内并等待滚动结束,否则坐标会算错。
CodeMirror:编辑器是 contenteditable 容器(.cm-content)。推荐用 document.execCommand 的 insertText 命令写入,它走编辑器自己的事务系统,能正确触发变更事件与重新渲染。
Quill:同样是 contenteditable(.ql-editor)。方法与 CodeMirror 一致,focus 后 execCommand insertText,写完可以通过读取 innerText 长度验证是否成功。
二、隐藏必选项导致静默失败
有些表单存在不可见的必选勾选框。此时点击提交按钮不会有任何网络请求,只会上报一条埋点,按钮呈现灰色禁用态。排查方法是遍历 DOM 检查所有 input 与自定义勾选组件的状态,而不是只看可见字段。勾选后按钮立即恢复可用,提交请求随即发出。
三、被禁用的提交按钮
如果按钮的禁用态由前端校验控制,而校验条件难以复现,可以直接读取页面脚本确认它绑定的提交函数(通常在启用时被设置到 onclick 上),然后在控制台直接调用该函数。实测提交请求可以正常发出并被服务端接受。
小结
处理复杂表单的通用顺序是:先用真实输入事件写入内容,再检查是否有隐藏校验项,最后确认提交函数的调用链。理解页面自身的逻辑,比反复模拟点击更有效。
- 点赞
- 收藏
- 关注作者
评论(0)