本机浏览器运行时可用性的三层判定

fact failure headless browser playwright pyppeteer dynamic rendering lesson

修改:20260427012414000

本机不存在可被 Playwright/pyppeteer 直接稳定启动的浏览器运行时


''结论'': 仅仅发现本机有一个 bundled Chromium 文件或安装了 playwright / pyppeteer,都不足以证明可用。实际判定必须以 smoke test 为准。

''本轮证据'':
# shutil.which(...) 未找到系统级 chromium/google-chrome/firefox。
# 找到的唯一浏览器二进制是 ~/.local/share/pyppeteer/local-chromium/1181205/chrome-linux/chrome
# 该二进制用 pyppeteer 启动时返回 Browser closed unexpectedly
# playwright 则在 driver 初始化阶段直接报缺少 GLIBC_2.25/2.27/2.28,说明其 driver 在当前宿主 ABI 上不可用。

''可复用判断'':
headless browser 环境必须做端到端 smoke test 之前,先区分三层:包是否安装、二进制是否存在、二进制是否真的能启动并加载最小页面。只有第三层通过,才算存在可用浏览器运行时。

''关联'': 此结论可作为 Playwright bundled browser startup can fail on host ABI mismatch 的更一般化版本,并直接支撑 远程浏览器 DOM 快照接口的失败边界远程浏览器候选端点的健康/渲染契约判定