v0.7.2
新增
- 新增
page_dialog_respond,用于处理 alert、confirm 和 prompt 原生对话框:- 使用 DrissionPage 原生能力探测;
- Prompt 内容不会出现在公开结果或历史记录中;
- 返回与操作关联的
ActionReceipt。
- 新增
element_click_and_download,用于原子执行元素点击并等待对应下载:- 支持操作键重放保护,避免重复点击和重复下载;
- 校验文件大小和 SHA-256;
- 返回安全相对路径、
ArtifactRef和ActionReceipt; - 下载文件限制在
DP_MCP_DOWNLOAD_ROOT下。
page_pointer_drag新增最多 6 个有序waypoints,支持画布路径、地图拖动、
框选和可视化编辑器连接。element_click新增左键、右键、中键以及单击、双击语义。
变更
- 公开工具数量从 58 个调整为 53 个。
- 指针执行模型简化为两个确定性 profile:
direct:默认值,一步移动到精确目标;natural:固定 24 步的缓动三次贝塞尔轨迹;- 所有移动和拖动都会精确到达最终目标;
- 拖动失败后仍会尝试释放鼠标按键。
- 移除随机抖动、随机反应时间、overshoot、
preciseprofile 和显式合成
起始坐标,使指针行为可复现、更容易测试。 - 普通工具调用围绕共享浏览器上下文串行执行;
page_dialog_respond可以并发
响应阻塞中的原生对话框。 cleanup()会等待正在执行的工具调用结束,并阻止清理期间创建或使用新的
浏览器上下文,减少资源释放竞争。- 未知工具和无效参数会在浏览器初始化之前被拒绝。
- 保存截图时,公开结果只返回相对于
DP_MCP_SCREENSHOT_ROOT的规范化路径。 - MCP 引导面收敛为 0 个 MCP Prompt 和 1 个静态
drissionpage://skills/catalogResource。 - Action Receipt 和 Artifact 状态仅保留在下载、原生对话框等需要严格关联
时序和副作用的能力中。 - 可复用表单和视觉工作流迁移至 Python 分发包之外的可选 Skills。
修复
- 修复 Linux headless Chromium 下重复输入文本时清空失败的问题,改用
DrissionPage 跨平台清空路径后再执行真实输入。 - 修复原生对话框触发操作与响应操作之间可能发生的并发阻塞。
- 修复工具执行与服务器 cleanup 并发时的上下文释放竞争。
- 修复下载取消过程中可能遗留的异步任务和文件描述符状态。
安全性
- 下载策略拒绝会在点击、操作声明和文件分配之前执行。
- 下载文件使用稳定、禁止跟随符号链接的文件描述符进行哈希验证,降低路径
替换竞争风险。 - 公开 URL 会移除凭据、查询参数、fragment、本地路径和不安全协议。
- 截图、上传和下载结果仅公开安全相对路径。
- 对不确定的下载或对话框结果不会自动重试,避免重复外部副作用。
移除和兼容性变化
0.7.2 相比 0.6.1 移除以下 7 个公开工具,不提供兼容别名或占位工具:
| 已移除工具 | 推荐组合方式 |
|---|---|
form_inspect |
page_snapshot、element_find_all、element_find 和属性、文本读取 |
form_fill_preview |
显式组合 element_type、element_select、element_check 和状态读取 |
page_detect_challenges |
page_observe、page_snapshot、聚焦元素读取和可选 Skill 分类 |
page_click_xy_batch |
逐次调用 element_click 或 page_click_xy,每次操作后重新观察和验证 |
page_wait_challenge_result |
wait_until 加 URL、文本、属性或 property 后置条件 |
browser_open_and_snapshot |
page_navigate 后显式调用 page_snapshot 或 page_observe |
browser_extract_links |
使用有界的 element_find_all 完成链接发现 |
0.7.0 中曾加入、但最终未保留在 0.7.2 公开注册表中的 form_fill 和
form_submit,同样需要通过原子输入、激活、等待和状态读取工具组合实现。
运行兼容性
- Python:
>=3.10。 - DrissionPage:
>=4.1.1.4,<5。 - MCP Python SDK:
>=1.0.0。 - 不支持 DrissionPage 5.x。