本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
浏览器操作系统操作
该 InvokeBrowser API 提供对亚马逊基岩 AgentCore 浏览器会话的直接操作系统级控制。虽然 WebSocket-based 自动化终端使用 Chrome DevTools 协议 (CDP) 进行浏览器交互,但在操作系统级别上 InvokeBrowser 运行,启用 CDP 无法处理的操作,例如与打印对话框交互、键盘快捷键、右键单击上下文菜单、 JavaScript 警报和捕获全屏屏幕截图。
概述
亚马逊 Bedrock AgentCore 浏览器提供了两种与浏览器会话交互的方式:
-
WebSocket-based 自动化 (CDP):通过 WebSocket 连接使用 Chrome DevTools 协议。这非常适合标准浏览器自动化任务,例如浏览页面、单击 DOM 元素、填写表单和提取页面内容。像 Playwright 和 browser-use 这样的库通过这个端点进行连接。
-
OS-level actions (InvokeBrowser):使用 REST API 通过鼠标、键盘和屏幕截图操作执行操作系统级交互。这通过处理浏览器级自动化不足的场景来补充 CDP。
InvokeBrowser 在您的代理需要时使用:
-
与浏览器 DOM 之外的打印对话框、文件对话框或身份验证提示等原生操作系统 upload/download 对话框进行交互
-
关闭阻止 CDP 执行的 JavaScript 警报、确认或提示
-
使用键盘快捷键(例如 ctrl+a、ctrl+p)触发行为 OS-level
-
与操作系统呈现的右键单击快捷菜单进行交互
-
捕获包含浏览器视口之外的内容(例如操作系统通知或多窗口布局)的完整桌面屏幕截图
-
执行跨浏览器窗口或浏览器与桌面之间的拖放操作
InvokeBrowser 遵循的模式与 InvokeCodeInterpreter:采用行动型调度的单一统一行动。您发送的请求仅包含一个操作,并收到相应的结果。
支持的操作
InvokeBrowser 通过BrowserAction联合支持以下操作类型。每个请求只能设置一个操作成员。
鼠标动作
对于所有鼠标操作,坐标值 (x,y) 必须严格在浏览器会话视口范围内。有效范围为 1 < x < 视口Width-2 和 1 < y < 视Height-2口。默认视口大小为 1456×819 像素,可以在使用参数启动会话时对其进行配置。viewPort
| 处理建议 | 必填字段 | 可选字段 | 说明 |
|---|---|---|---|
|
|
|
|
单击指定的坐标。 |
|
|
|
— |
将光标移动到指定坐标。 |
|
|
|
|
从起点拖动到终点。 |
|
|
|
|
在指定位置滚动。 |
键盘动作
| 处理建议 | 必填字段 | 可选字段 | 说明 |
|---|---|---|---|
|
|
|
— |
键入文本字符串。最大长度:10,000 个字符。 |
|
|
|
|
按下按键 N 次。 |
|
|
|
— |
按下组合键(例如, |
屏幕截图操作
| 处理建议 | 必填字段 | 可选字段 | 说明 |
|---|---|---|---|
|
|
— |
|
捕获完整的操作系统桌面(不仅仅是浏览器视口)。格式:仅限 PNG。 |
注意事项
-
ASCII-only 文本输入:该
keyType操作仅支持 ASCII 字符。 Non-ASCII 输入期间会跳过字符(例如 Unicode 或多字节字符)。 -
不验证密钥名称:
keyPress和keyShortcut操作不验证是否支持指定的密钥名称。如果您提供无法识别的密钥名称,则 API 将在不执行预期操作的情况下返回 SUCCESS 状态。请参阅上面列出的支持的密钥名称。 -
支持的密钥名称:
keyPress和keyShortcut操作的密钥名称必须为小写。支持的密钥包括单个字符(a—z、0—9)和命名密钥enter,例如、tab、space、、backspace、delete、escape、ctrl、、alt、shift。
请求和响应格式
请求
POST /browsers/{browserIdentifier}/sessions/invoke HTTP/1.1 x-amzn-browser-session-id: sessionId Content-type: application/json
请求正文包含一个action字段,该字段正好包含一个BrowserAction联合集的成员:
{ "action": { "mouseClick": { "x": 100, "y": 200, "button": "LEFT", "clickCount": 1 } } }
响应
通过x-amzn-browser-session-id响应标头返回。sessionId响应正文包含一个包含相应操作结果的result字段。
成功时:
{ "result": { "mouseClick": { "status": "SUCCESS", "error": null } } }
失败时,该status字段设置为 FAILED,该error字段包含对失败的描述。
示例
以下示例说明如何使用 AWS CLI、Python AWS 开发工具包 (Boto3) 和 API 调用浏览器操作。