<!-- Source: https://deepseek-browser-use.io.nexus/13 -->

# 命令清单

本文按功能分组列出当前工程的**注册方法**，用于快速定位「这件事该用哪个方法」。这是方法名与用途索引，不是每条命令的完整参数手册。参数以源码 `CommandTable` 的注册及服务实现为准，使用说明位于 `.agents/skills/deepseek-browser-use/SKILL.md` 及其 `references/` 分册。

完整实现教程从 [14：公共执行链](<https://deepseek-browser-use.io.nexus/14>) 开始，后续按功能覆盖本表全部命令，并列出注册参数和 Java 入口。

随时可以用 `list_methods` 或 `GET /playwright/methods` 取到同一份清单，不必靠猜；方法名写错时服务会顺带给近似建议（例如「不支持的方法：list_tabs，你是不是想用 get_tabs / new_tab？」）。

[[toc]]

> 除本文列出的注册方法外，还有一个批量入口 `commands`：它不出现在方法清单里，由分发层直接处理，可以一次提交多个方法。见 [04](<https://deepseek-browser-use.io.nexus/04>) 第四节。

## 一、生命周期（5）

| 方法 | 用途 |
| --- | --- |
| `start` | 启动任务（不传 ID 时自动生成雪花 ID），可指定 `headless`、`browser` 与 `profile`，或 `userDataDir` / `profileDirectory`（见 [39](<https://deepseek-browser-use.io.nexus/39>)） |
| `close` | 结束任务，最后一个任务保留浏览器与页面；`closeBrowser:true` 才显式关闭（有其他任务时拒绝） |
| `shutdown` | 关掉全部任务与共享浏览器，服务进程不退出 |
| `targets` | 参数 `endpoint`；列出外部 CDP 端点上的页面（`targetId`、`url`、`type`、`title`），只读，不建任务 |
| `attach` | 参数 `endpoint` 和 `targetId` 或 `url`；把一个外部 CDP 页面接成任务，必须恰好匹配一个目标，`close` 只断开连接 |

## 二、导航（7）

| 方法 | 用途 |
| --- | --- |
| `navigate` | 打开网址（与 `go_to_url` 等价） |
| `go_to_url` | 打开网址，支持 `waitUntil`（默认 domcontentloaded）和 `timeoutMs` |
| `go_back` | 后退 |
| `go_forward` | 前进 |
| `reload` | 刷新 |
| `get_url` | 取当前页地址 |
| `get_title` | 取当前页标题 |

## 三、页面状态与等待基线（3）

| 方法 | 用途 |
| --- | --- |
| `get_browser_state` | **智能体的眼睛**：页签列表 + 可交互结构化文本；索引始终生成，高亮与截图默认关闭，分别传 `highlight:true` / `screenshot:true` 启用 |
| `list_frames` | 列出页面里的 iframe，用于判断内容在哪个 frame |
| `wait` | 固定等待若干秒 |

## 四、元素交互（18）

| 方法 | 用途 |
| --- | --- |
| `click_element_by_index` | 按快照索引点击 |
| `double_click_element_by_index` | 双击 |
| `hover_element_by_index` | 悬停 |
| `focus_element_by_index` | 聚焦 |
| `check_element_by_index` | 勾选复选框 |
| `uncheck_element_by_index` | 取消勾选 |
| `input_text` | 向输入框填值 |
| `type_text` | 逐字符输入（模拟真实键入） |
| `upload_file` | 给文件输入框设置文件（路径必须是服务端能打开的） |
| `drag_element_by_index` | 拖拽到目标元素 |
| `send_keys`（别名 `press_key`） | 发送按键（如 `Enter`、`Control+A`，支持 `keys` 或 `key` 参数） |
| `key_down` / `key_up` | 按下 / 抬起某个键 |
| `get_dropdown_options` | 读下拉框的可选项 |
| `select_dropdown_option` | 选下拉框的某一项 |
| `scroll` | 按 numPages 指定的页数滚动 |
| `scroll_to_text` | 滚动到某段文本处 |
| `keyboard_type` | 用真实按键把文字输入当前焦点，不需要元素索引，适合 Ace、CodeMirror 这类隐藏 textarea；回执不回显文字 |

## 五、元素读取（10）

| 方法 | 用途 |
| --- | --- |
| `get_element_text` | 取文本 |
| `get_element_html` | 取 `innerHTML` |
| `get_element_value` | 取表单**实时值**（DOM property，不是初始 attribute） |
| `get_element_attribute` | 取指定属性 |
| `get_element_listeners` | 取元素上挂的事件监听 |
| `get_element_count` | 按选择器数元素个数 |
| `get_element_box` | 取元素坐标与尺寸 |
| `is_visible` / `is_enabled` / `is_checked` | 可见 / 可用 / 勾选状态 |

## 六、选择器与文本定位（7）

| 方法 | 用途 |
| --- | --- |
| `click_element_by_selector` | 按 CSS 选择器点击（不依赖索引） |
| `input_text_by_selector` | 按选择器填值 |
| `click_element_by_text` | 按可见文本点击 |
| `click_element_by_role` | 按无障碍角色点击 |
| `input_text_by_label` | 按标签文本找输入框并填值 |
| `clear_text` | 清空输入框 |
| `hover_and_click` | 先悬停再点击，用于悬停才展开的子菜单 |

## 七、页签（8）

| 方法 | 用途 |
| --- | --- |
| `get_tabs` | 列出任务自己的页签 |
| `new_tab` | 新开页签 |
| `switch_tab` | 按页签索引切换 |
| `switch_tab_by_url` | 按 URL 切换 |
| `close_tab` | 按页签索引关掉一个页签 |
| `close_other_tabs` | 关掉其他页签 |
| `bring_to_front` | 把浏览器窗口提到前台（人工介入前常用） |
| `wait_for_new_tab` | 等晚到的新页签并切换过去；点击已经发生时传 `baseline`（点击前的页签数），超时报 `POPUP_NOT_OPENED` |

## 八、等待（8）

| 方法 | 用途 |
| --- | --- |
| `wait_for_element` | 等元素出现 |
| `wait_for_text` | 等文本出现 |
| `wait_for_url` | 等地址匹配 |
| `wait_for_load` | 等加载状态（如 `networkidle`） |
| `wait_for_function` | 等页面里的 JS 条件成立 |
| `wait_for_idle` | 等网络安静下来 |
| `wait_for_stable` | 等某容器内容稳定（异步表格刷新后读数必备） |
| `wait_for_count` | 等元素数量满足 min / max / equals 条件 |

## 九、鼠标（6）

| 方法 | 用途 |
| --- | --- |
| `mouse_move` | 移动鼠标 |
| `mouse_down` / `mouse_up` | 按下 / 抬起 |
| `mouse_wheel` | 滚轮 |
| `mouse_click` | 在指定坐标点击 |
| `mouse_click_by_selector` | 按选择器取坐标后真实点击（原生点击点不动时用） |

## 十、截图与 PDF（3）

| 方法 | 用途 |
| --- | --- |
| `screenshot` | 页面截图，支持整页、裁剪区、指定元素、内联 base64 |
| `get_element_screenshot` | 只截某个元素 |
| `pdf` | 导出 PDF（**只有 Chromium 系支持**） |

## 十一、Cookie 与存储（6）

| 方法 | 用途 |
| --- | --- |
| `get_cookies` / `set_cookie` / `clear_cookies` | Cookie 读写与清理 |
| `get_local_storage` / `set_local_storage` / `clear_local_storage` | LocalStorage 读写与清理 |

## 十二、上下文设置（7）

| 方法 | 用途 |
| --- | --- |
| `set_viewport` | 改页面视口尺寸，见 [06](<https://deepseek-browser-use.io.nexus/06>) |
| `set_geolocation` | 设置地理位置 |
| `set_offline` | 模拟离线 |
| `set_headers` | 追加请求头 |
| `set_credentials` | HTTP 基本认证凭据（**CDP 那条路不支持**） |
| `set_media` | 媒体类型（如深浅色偏好） |
| `grant_permissions` | 参数 `permissions`（如 `["microphone"]`）、`origin`（可选，默认当前页），只授权给该 origin |

> `set_viewport`、`set_media` 作用于当前 Page；地理位置、离线和请求头作用于共享 Context。`set_credentials` 涉及重建上下文，并受当前任务数量及启动方式限制。实现和影响范围见 [23](<https://deepseek-browser-use.io.nexus/23>)。

## 十三、对话框与弹窗（7）

| 方法 | 用途 |
| --- | --- |
| `get_dialog` / `clear_dialog` | 服务层记录到的对话框，读与清 |
| `get_js_dialog` / `clear_js_dialog` | 原生 JS 弹窗（`alert` / `confirm` / `prompt`） |
| `set_dialog_behavior` | 设置原生弹窗的默认处理方式（默认自动确认） |
| `get_modals` | **DOM 弹窗**清单：标题、按钮文本、× 与各按钮的坐标 |
| `close_modal` | 关掉 DOM 弹窗（用真实鼠标点，并校验数量真的减少了） |

## 十四、控制台日志（2）

| 方法 | 用途 |
| --- | --- |
| `get_console_logs` | 读页面控制台日志 |
| `clear_console_logs` | 清空记录 |

## 十五、网络（5）

| 方法 | 用途 |
| --- | --- |
| `route` / `unroute` | 请求拦截与解除（阻止、放行或模拟响应） |
| `get_requests` | 请求元数据列表（requestId、URL、方法、状态、耗时、failure，有请求体时附 `postData`） |
| `wait_for_response` | 等某个响应到达 |
| `get_response_body` | 按 `requestId` 取响应体 |

**同一个 URL 被重复请求时，用 `requestId` 精确匹配**，否则可能把上一次的响应当成本次结果。请求体与响应体都可能被截断，必须检查 `postDataTruncated` / `truncated` 这类标记。

## 十六、页面读取与差异（9）

| 方法 | 用途 |
| --- | --- |
| `get_page_snapshot` | 页面快照（可选带控制台信息） |
| `diff_dom_text` | 重新做一次快照并与上一次按行做差集，判断「页面到底动没动」比重新读整页省 |
| `get_interactive_map` | 可交互元素映射 |
| `get_form_state` | 表单**实时**状态：`value`、`checked`、`selected`、`readonly` / `disabled` / `editable`，密码值脱敏 |
| `extract_structured_data` | 读取页面正文并可附链接；query 不会触发大模型抽取。回执带 `length`/`truncated`/`limit` |
| `extract_markdown` | 页面（或选择器命中的元素）转 Markdown，**表格按 GFM 表格输出**；命中多个用 `nth` 指定；见 [17](<https://deepseek-browser-use.io.nexus/17>) |
| `find_text` | 在页面文本里找词或正则，只回**命中 + 前后文 + 行号**；想找一行时用它，别把整页拉回上下文 |
| `list_tables` | 列出页面上所有表格（行列数、class、预览、是否含图），并给出可直接填进 `extract_markdown` 的选择器 |
| `download_image` | 把页面上的图片**原始文件**存到服务端（`data/<id>/`），回 `path`/`url`/`size`/`sha256`；`path` 可直接交给 `ocr_image` |

## 十七、脚本（1）

| 方法 | 用途 |
| --- | --- |
| `execute_js` | 在页面里执行 JavaScript，支持指定 frame、`vars` 注入与 `bodyFile`。见 [09](<https://deepseek-browser-use.io.nexus/09>) |

## 十八、自省与维护（7）

| 方法 | 用途 |
| --- | --- |
| `list_methods` | 方法清单 |
| `get_config` | 服务端生效配置 |
| `list_tasks` | 当前任务与共享浏览器状态 |
| `cleanup` | 清理运行期产物（**默认只预演**） |
| `get_page_diagnostics` | 一次回答“页面为什么没渲染”：`findings`、`failedRequests`、`httpErrors`、`consoleErrors`、`pageErrors`、`cspViolations` |
| `get_diagnostics` | CLI 为 `dsb diagnose`；只读内存，不进入浏览器事件循环，长命令执行期间也能调用，返回 `data.active` 和 `data.last` |
| `cancel_command` | CLI 为 `dsb cancel`；参数 `commandId`，只取消这一条命令，详见 [40](<https://deepseek-browser-use.io.nexus/40>) |

## 十九、站点配方（2）

| 方法 | 用途 |
| --- | --- |
| `list_recipes` | 列出可用配方及其参数说明 |
| `run_recipe` | 按名字显式执行一个配方。见 [10](<https://deepseek-browser-use.io.nexus/10>) |

## 二十、后台作业（3）

| 方法 | 用途 |
| --- | --- |
| `list_jobs` | 列出后台批次 |
| `get_job` | 取某个批次的结果 |
| `cancel_job` | 取消某个批次（在下一步之前生效） |

## 二十一、人机协作（4）

| 方法 | 用途 |
| --- | --- |
| `request_human_input` | 创建求助请求，可带元素 `index` / `selector` 取验证图片 |
| `ask_user` | **向用户要一个值**（银行卡号 / 身份证号 / 验证码），或让他在选项里挑；不截图、不抢焦点，形态与宿主侧的同名提问工具一致 |
| `get_human_input` | 查询请求状态与用户答复 |
| `submit_human_input` | 由宿主或用户提交答复（按 `stepId` / 问题的 `id` 逐条回填，多选题的值给数组） |

`request_human_input` **只是创建请求记录**，接口成功不等于用户已经收到通知 —— 宿主必须真的把求助信息展示出来。见 [04](<https://deepseek-browser-use.io.nexus/04>) 第五节。
「请人去页面上做一件事」与「向用户要一个值」是两件事：前者用 `request_human_input`，后者用 `ask_user`，参数形态与答复结构见 [25](<https://deepseek-browser-use.io.nexus/25>)。

## 二十二、图像识别（1）

| 方法 | 用途 |
| --- | --- |
| `ocr_image` | 对图片（服务端路径或页面元素）做 OCR，参数、语言包与结果判断见 [Windows OCR](<https://deepseek-browser-use.io.nexus/11>) |

## 二十三、profile 管理（3）

| 方法 | 用途 |
| --- | --- |
| `list_profiles` | 返回 `data.profiles` 类型化列表；CLI 为 `dsb profiles` 或 `dsb profile list` |
| `clone_profile` | 参数 `name`、`sourceUserDataDir`、`sourceProfileDirectory`；返回 `data.profile`、`copiedFiles`、`copiedBytes`、`warning` |
| `delete_profile` | 参数 `name`；删除命名 profile 及其中的登录状态，使用中的 profile 会被拒绝 |

列表字段、启动选择与安全限制见 [39](<https://deepseek-browser-use.io.nexus/39>)。两条管理方法不启动浏览器。

## 二十四、按场景查方法

| 想做的事 | 用哪些 |
| --- | --- |
| 看页面有什么、能点什么 | `get_browser_state`（读 `data.text`），必要时 `get_interactive_map` |
| 快照里找不到某元素 | 先看 `pixels_above` / `pixels_below`，再按 [06](<https://deepseek-browser-use.io.nexus/06>) 第八节处理 |
| 异步表格点完读不到新数据 | `wait_for_stable` 或 `wait_for_count` |
| 原生点击点不动 | 先检查遮挡及页面状态，避免重复提交；模式选择见[点击排障](<https://deepseek-browser-use.io.nexus/08>) |
| 元素只读 / 被禁用 | 属页面语义，换控件用，别重试（见 [04](<https://deepseek-browser-use.io.nexus/04>) 错误码表） |
| 页面被弹窗挡住 | `get_modals` 确认当前弹窗，先完成必要验证；仅关闭确实需要关闭的弹窗 |
| 需要 cookie / 登录态 | `get_cookies` / `set_cookie`；跨任务复用靠 profile（见 [05](<https://deepseek-browser-use.io.nexus/05>)） |
| 要跨域 iframe 里的内容 | `list_frames` 定位 frame，再在 `execute_js` 里带 `frame` |
| 要读页面上的表格（数字别配错列） | `extract_markdown`（表格转 GFM 表格）；只要某张表就传 `selector` |
| 要弄清页面到底动没动 | `diff_dom_text` |
| 遇到验证码 / 登录 | `request_human_input`（见 [04](<https://deepseek-browser-use.io.nexus/04>) 第五节） |
