场景做法需要理解紫鸟 WebDriver 是什么、能做什么读本 Skill需要做自动化集成/框架选型的设计决策读本 Skill需要查阅某个接口的请求/响应格式读本 Skill 的 §按需深入 获取路径,再读对应 reference/ 文件需要查看各语言/框架示例代码不读本 Skill → 直接读 reference/framework-examples.md
紫鸟浏览器 WebDriver 是紫鸟浏览器提供的本地自动化控制接口。通过命令行参数启动紫鸟浏览器进入 WebDriver 模式后,浏览器在本地开启 HTTP 服务,开发者可通过 JSON API 管理店铺窗口,并使用 Selenium / Puppeteer / Playwright / DrissionPage 等框架对接调试端口,实现对店铺浏览器的自动化控制。
能力域说明客户端启动控制命令行参数启动/退出紫鸟浏览器进入 WebDriver 模式认证与登录通过 API 完成设备授权、账号登录、获取店铺列表店铺窗口管理启动/关闭指定店铺窗口,获取调试端口(debuggingPort)自动化框架对接返回调试端口供 Selenium/Puppeteer/Playwright/DrissionPage 连接内核管理检测/下载/更新浏览器内核缓存与会话清理本地/在线缓存、管理 Cookie 策略插件管理启动店铺时加载指定插件、查询插件安装状态
core_version 自行下载匹配版本的 ChromeDriver--listen_ip 可开放远程控制)WebDriver 模式:通过 --run_type=web_driver 参数启动紫鸟浏览器,使其进入自动化控制模式。此模式下浏览器在本地指定端口开启 HTTP 服务,接受 JSON 格式的 API 调用。启动前必须关闭紫鸟主进程。
HTTP IPC 通信:所有 API 均为 POST 请求,JSON 格式,UTF-8 编码。通过 --port 参数指定通信端口,地址为 http://127.0.0.1:{port}。每个请求需携带 action 字段标识操作类型、 requestId 做全局唯一标识。超时建议 120 秒以上。
店铺窗口(browserOauth / browserId):紫鸟以"店铺"为最小管理单位。调用 getBrowserList 获取店铺列表及加密 ID( browserOauth),然后通过 startBrowser 启动指定店铺窗口,返回 debuggingPort 用于自动化框架连接。若直接使用 getBrowserList 返回值打开店铺,只需传 browserOauth;仅当需要以明文店铺 ID 打开时才赋值 browserId。
内核版本匹配: startBrowser 返回 core_type(如 Chromium)和 core_version(如 119.1.0.16),开发者必须使用对应大版本号的 ChromeDriver(如 119.x)连接,否则自动化将失败。
Rendering diagram...
--run_type=web_driver --ipc_type=http --port={端口}core_version 大版本号下载匹配的 ChromeDriver( 不是系统 Chrome 版本)127.0.0.1:{debuggingPort} + 匹配版本的 ChromeDriver 连接 Selenium 等stopBrowser(需凭据)关闭店铺窗口, exit 退出客户端接口 Action职责关键输入关键输出需凭据updateCore检测/下载内核company, username, passwordstatusCode, msg(进度)是applyAuth设备授权company, username, passwordstatusCode是getBrowserList获取店铺列表company, username, passwordbrowserList[{browserOauth, browserName, siteId...}]是startBrowser启动店铺窗口company, username, password, browserOauth/browserIddebuggingPort, core_version, core_type是stopBrowser关闭店铺窗口company, username, password, browserOauth/browserIdstatusCode是logout退出登录无statusCode否exit退出客户端进程无statusCode否ClearCache清理本地缓存browserOauths[]statusCode否ClearOnline清理在线缓存company, username, password, browserOauth, type(1/2/3)statusCode是getPluginInstalled查询插件安装状态browserId, pluginIdsinstall_status否getRunningInfo获取已开启的店铺无browsers[]否
以下均为实战中高频踩坑点,务必在编写自动化脚本时严格遵守。
所有标记"需凭据"的接口( updateCore、 getBrowserList、 startBrowser、 stopBrowser、 ClearOnline) 每次调用都必须携带完整的 company/username/password,不只是"登录类"接口。 updateCore 尤其容易遗漏——它看似只是内核检测,但紫鸟服务端需要凭据验证身份后才返回内核状态。
API 返回错误时, 优先读取 err 字段的内容来定位问题,而非仅依赖 statusCode 数字。 err 字段包含具体的中文错误描述,是最有价值的排障信息。
编码注意: err 中的中文可能因响应体未正确按 UTF-8 解码而出现乱码,导致无法定位根因。 务必确保 HTTP 客户端以 UTF-8 解码响应体(Python requests 库需设置 response.encoding = 'utf-8',或使用 response.content.decode('utf-8'))。
紫鸟启动失败或异常退出后,可能残留多个子进程(主进程 + 内核进程),如果不清理就重启会导致端口占用、反复失败。 每次启动前和失败后重试前,必须确保所有紫鸟相关进程已终止。
清理命令:
bash
# Windows (PowerShell)
Get-Process | Where-Object { $_.ProcessName -match 'ziniao|ZiNiao' } | Stop-Process -Force
# macOS / Linux
pkill -f ziniao || true
紫鸟浏览器的内核版本( core_version) 与系统安装的 Chrome 浏览器版本无关。必须根据 startBrowser 返回的 core_version 提取大版本号(如 119.1.0.16 → 119),下载对应版本的 ChromeDriver。
建议策略:
core_version 后,检查本地缓存目录是否已有该大版本的 ChromeDriver./chromedriver_cache/{major_version}/chromedriver),后续复用项目要求Windows紫鸟 V5 (5.X.X.X) 或 V6 (6.16.0.126+)macOS紫鸟 V6 (6.15.0.44+)Linux紫鸟 V6 (6.25.3.3+)通信协议HTTP POST, JSON, UTF-8超时设置≥ 120 秒启动前提紫鸟主进程必须已完全关闭推荐框架Selenium(Playwright/Puppeteer 会被检测为自动化)
规则:以下内容不要主动加载。 仅在你明确需要了解某个细节时,按路由表读取对应的 reference/ 文件。
你需要了解读取文件核心工作流接口(applyAuth/getBrowserList/startBrowser)reference/api-core.md辅助管理接口(stopBrowser/logout/exit/缓存/插件/updateCore)reference/api-auxiliary.md启动客户端的命令行参数详细说明reference/startup-params.md各语言/框架的示例代码与下载链接reference/framework-examples.md权限开通、账号配置、常见问题排查reference/prerequisites.md