做平台发布自动化, 第一版 selector 多半是猜的。猜的命中率 = 平台 DOM 跟你想象的一致度, 通常很低。
盲调 vs 真实数据驱动
盲调路径: 业内常识写 selector → 跑 → 失败 → 翻文档/抓包/看截图 → 再调 → 再跑. 一次迭代 30-60 分钟.
真实数据驱动: 第一次 click 失败时, 自动 dump 当前页面的 modals/buttons/body-head 文本 → 直接看到真实 DOM 文案 → 一行 selector 改对. 一次迭代 5 分钟.
POST-CLICK DIAG 工程模板
async def dump_post_click_diag(page, platform, tag):
modals = await page.evaluate(extract_modals_js)
toasts = await page.evaluate(extract_toasts_js)
buttons = await get_visible_button_texts(page)
body_head = await page.evaluate("document.body.innerText.slice(0, 2000)")
save_screenshot(page, tag)
log_all_4_to_observability
实战收益
- selector 命中率从 30% 提到 90%+
- 同一平台 DOM 改版后, 修复时间 60min → 5min
- 跨平台共享一套 dump 工具, 不再每平台重写
#Playwright #自动化测试 #DOM #微鹏科技