最近用 Playwright 跑社媒发布自动化, 遇到一个奇怪现象: fill_body 步骤稳定耗时 127-130s, 而正常应该 1-3s. 最终定位到 5 个常见根因, 记录给同样在踩坑的同学.
1. 富文本编辑器异步初始化
很多平台用 contenteditable + 自定义编辑器框架 (Quill/TinyMCE 类), 页面 load 后还要异步加载工具栏插件. 早 fill 会被吞或落到隐藏 input.
2. 自动保存草稿的防抖
部分平台每输入一次都触发 setTimeout 防抖保存草稿, 大段 fill 时被持续 reset, 看起来像"卡住".
3. 滑块验证或签名级反爬
fill 完触发了风控, 弹出滑块/二维码层覆盖, Playwright 一直在等"submit_btn 可点击"超时.
4. 平台账号未绑手机号
这次踩的真坑 — 账号未绑手机, fill 完后弹"必须绑定手机号"模态, publisher 没识别这个弹框, 在那里干等 timeout.
5. selector 错配导致 fill 落空
fill 到错的 input (隐藏的 hidden), 内容不会出现在可见编辑器, submit 也不会真发.
排查心法
- 优先看 Runner Chrome 屏幕 (有图形界面的话), 用户视觉证据 > 日志推断
- 关键 step 必须打 step_log 上报后端, 时长异常立刻看出
- timeout fail 时附带 dom_class_sample 数据回流, 真实数据迭代调优
#Playwright #自动化测试 #反爬 #微鹏科技