用途:这是 Playwright Python 仓库的驱动版本滚动操作手册,目标是把 DRIVER_VERSION 指向新的 playwright-core 版本,移植该区间内上游引入的全部公开 API 变更,抑制其余改动,使 ./scripts/update_api.sh 与 mypy playwright 干净通过且测试套件仍通过。
主要能力与心智模型:Python 端口是 playwright/_impl/ 中的手写代码,加上生成器 scripts/codegen/generate_api.js,它解析上游 docs/src/api、应用 scripts/codegen/python_rules.js 中的 Python 事实,并把整个公开 API 生成到 playwright/{async,sync}_api/_generated.py。生成器不读 _impl/,因此文档中的新成员会立即出现在 _generated.py 中,形成对尚不存在实现的调用,mypy 会列出这些缺口。三种处理方式:PORT(实现)、MISMATCH(已发布实现优先,记入 python_rules.js)、N/A(仅文档、langs 过滤排除 Python、服务端、Electron 专属或同版本内被回滚)。判断依据是 api.json 中成员的 langs 字段,空 langs: {} 表示包含 Python,必须实现。
使用方式:设置环境(Python 3.10+,可用 uv venv),导出 PW_SRC_DIR 指向 microsoft/playwright 检出并切到 release-<new> 分支;编辑 DRIVER_VERSION,运行 python scripts/update_node_version.py,激活 venv 后 python -m build --wheel、playwright install chromium;用 node "$PW_SRC_DIR/utils/doclint/generateApiJson.js" > /tmp/api.json 导出 langs。确定提交区间后按时间顺序 git show 每个提交,分类并处理,最后运行 PW_SRC_DIR=../playwright ./scripts/update_api.sh 重新生成,再跑 mypy playwright 修复错误。
适用场景:维护 Playwright Python 绑定、跟进上游 API 变更的贡献者。
限制:需要本地 microsoft/playwright 检出与网络下载驱动;sudo 被禁用,不能 apt install 或 playwright install --with-deps;CI 不再校验 _generated.py 同步,需手动重新生成并提交;不得凭 API 名称判断是否为内部工具,必须以 api.json 的 langs 为准。