Trình duyệt (do OpenClaw quản lý)
OpenClaw có thể chạy một hồ sơ Chrome/Brave/Edge/Chromium riêng biệt mà agent điều khiển. Hồ sơ này được tách biệt khỏi trình duyệt cá nhân của bạn và được quản lý thông qua một dịch vụ điều khiển nhỏ cục bộ bên trong Gateway (chỉ loopback). Góc nhìn cho người mới bắt đầu:- Hãy nghĩ về nó như một trình duyệt riêng biệt chỉ dành cho agent.
- Hồ sơ
openclawkhông can thiệp vào hồ sơ trình duyệt cá nhân của bạn. - Agent có thể mở tab, đọc trang, nhấp chuột và gõ trong một môi trường an toàn.
- Hồ sơ
usertích hợp kết nối với phiên Chrome đã đăng nhập thực của bạn qua Chrome MCP.
Những gì bạn nhận được
- Một hồ sơ trình duyệt riêng biệt tên là openclaw (mặc định có màu cam).
- Kiểm soát tab có tính quyết định (danh sách/mở/tập trung/đóng).
- Hành động của agent (nhấp/gõ/kéo/chọn), chụp nhanh, chụp màn hình, PDF.
- Hỗ trợ đa hồ sơ tùy chọn (
openclaw,work,remote, …).
Bắt đầu nhanh
Hồ sơ: openclaw vs user
openclaw: trình duyệt được quản lý, tách biệt (không cần extension).user: hồ sơ đính kèm Chrome MCP tích hợp cho phiên Chrome đã đăng nhập thực của bạn.
- Mặc định: sử dụng trình duyệt
openclawtách biệt. - Ưu tiên
profile="user"khi các phiên đã đăng nhập hiện có quan trọng và người dùng đang ở máy tính để nhấp/chấp nhận bất kỳ lời nhắc đính kèm nào. profilelà ghi đè rõ ràng khi bạn muốn một chế độ trình duyệt cụ thể.
browser.defaultProfile: "openclaw" nếu bạn muốn chế độ quản lý theo mặc định.
Cấu hình
Cài đặt trình duyệt nằm trong~/.openclaw/openclaw.json.
- Dịch vụ điều khiển trình duyệt kết nối với loopback trên một cổng được lấy từ
gateway.port(mặc định:18791, là gateway + 2). - Nếu bạn ghi đè cổng Gateway (
gateway.porthoặcOPENCLAW_GATEWAY_PORT), các cổng trình duyệt được lấy sẽ thay đổi để giữ trong cùng một “gia đình”. cdpUrlmặc định là cổng CDP cục bộ được quản lý khi không được đặt.remoteCdpTimeoutMsáp dụng cho các kiểm tra khả năng tiếp cận CDP từ xa (không loopback).remoteCdpHandshakeTimeoutMsáp dụng cho các kiểm tra khả năng tiếp cận WebSocket CDP từ xa.- Điều hướng/mở tab trình duyệt được bảo vệ SSRF trước khi điều hướng và được kiểm tra lại nỗ lực tốt nhất trên URL
http(s)cuối cùng sau khi điều hướng. - Trong chế độ SSRF nghiêm ngặt, khám phá/kiểm tra điểm cuối CDP từ xa (
cdpUrl, bao gồm tra cứu/json/version) cũng được kiểm tra. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkmặc định làtrue(mô hình mạng tin cậy). Đặt nó thànhfalseđể duyệt chỉ công khai nghiêm ngặt.browser.ssrfPolicy.allowPrivateNetworkvẫn được hỗ trợ như một bí danh cũ để tương thích.attachOnly: truecó nghĩa là “không bao giờ khởi chạy trình duyệt cục bộ; chỉ đính kèm nếu nó đã chạy.”color+ màu sắc theo hồ sơ làm nổi bật giao diện người dùng trình duyệt để bạn có thể thấy hồ sơ nào đang hoạt động.- Hồ sơ mặc định là
openclaw(trình duyệt độc lập do OpenClaw quản lý). Sử dụngdefaultProfile: "user"để chọn trình duyệt người dùng đã đăng nhập. - Thứ tự tự động phát hiện: trình duyệt mặc định của hệ thống nếu dựa trên Chromium; nếu không thì Chrome → Brave → Edge → Chromium → Chrome Canary.
- Hồ sơ
openclawcục bộ tự động gáncdpPort/cdpUrl— chỉ đặt những cái đó cho CDP từ xa. driver: "existing-session"sử dụng Chrome DevTools MCP thay vì CDP thô. Không đặtcdpUrlcho driver đó.- Đặt
browser.profiles.<name>.userDataDirkhi một hồ sơ phiên hiện có nên đính kèm vào một hồ sơ người dùng Chromium không mặc định như Brave hoặc Edge.
Sử dụng Brave (hoặc trình duyệt khác dựa trên Chromium)
Nếu trình duyệt mặc định của hệ thống của bạn là dựa trên Chromium (Chrome/Brave/Edge/v.v.), OpenClaw sẽ tự động sử dụng nó. Đặtbrowser.executablePath để ghi đè tự động phát hiện:
Ví dụ CLI:
Điều khiển cục bộ vs từ xa
- Điều khiển cục bộ (mặc định): Gateway khởi động dịch vụ điều khiển loopback và có thể khởi chạy trình duyệt cục bộ.
- Điều khiển từ xa (node host): chạy một node host trên máy có trình duyệt; Gateway chuyển tiếp các hành động trình duyệt đến nó.
- CDP từ xa: đặt
browser.profiles.<name>.cdpUrl(hoặcbrowser.cdpUrl) để đính kèm vào một trình duyệt dựa trên Chromium từ xa. Trong trường hợp này, OpenClaw sẽ không khởi chạy trình duyệt cục bộ.
- Token truy vấn (ví dụ:
https://provider.example?token=<token>) - Xác thực HTTP Basic (ví dụ:
https://user:pass@provider.example)
/json/* và khi kết nối với WebSocket CDP. Ưu tiên sử dụng biến môi trường hoặc trình quản lý bí mật cho token thay vì lưu chúng vào file cấu hình.
Proxy trình duyệt Node (mặc định không cấu hình)
Nếu bạn chạy một node host trên máy có trình duyệt của bạn, OpenClaw có thể tự động định tuyến các cuộc gọi công cụ trình duyệt đến node đó mà không cần cấu hình trình duyệt thêm. Đây là đường dẫn mặc định cho các gateway từ xa. Lưu ý:- Node host mở dịch vụ điều khiển trình duyệt cục bộ của nó thông qua một lệnh proxy.
- Hồ sơ đến từ cấu hình
browser.profilescủa node (giống như cục bộ). - Vô hiệu hóa nếu bạn không muốn:
- Trên node:
nodeHost.browserProxy.enabled=false - Trên gateway:
gateway.nodes.browser.mode="off"
- Trên node:
Browserless (CDP từ xa được lưu trữ)
Browserless là một dịch vụ Chromium được lưu trữ cung cấp các điểm cuối CDP qua HTTPS. Bạn có thể chỉ định một hồ sơ trình duyệt OpenClaw tại một điểm cuối vùng Browserless và xác thực bằng khóa API của bạn. Ví dụ:- Thay thế
<BROWSERLESS_API_KEY>bằng token Browserless thực của bạn. - Chọn điểm cuối vùng phù hợp với tài khoản Browserless của bạn (xem tài liệu của họ).
Nhà cung cấp CDP WebSocket trực tiếp
Một số dịch vụ trình duyệt được lưu trữ cung cấp một điểm cuối WebSocket trực tiếp thay vì khám phá CDP dựa trên HTTP tiêu chuẩn (/json/version). OpenClaw hỗ trợ cả hai:
- Điểm cuối HTTP(S) (ví dụ: Browserless) — OpenClaw gọi
/json/versionđể khám phá URL trình gỡ lỗi WebSocket, sau đó kết nối. - Điểm cuối WebSocket (
ws:///wss://) — OpenClaw kết nối trực tiếp, bỏ qua/json/version. Sử dụng điều này cho các dịch vụ như Browserbase hoặc bất kỳ nhà cung cấp nào cung cấp cho bạn một URL WebSocket.
Browserbase
Browserbase là một nền tảng đám mây để chạy các trình duyệt headless với khả năng giải CAPTCHA tích hợp, chế độ ẩn danh và proxy dân cư.- Đăng ký và sao chép API Key của bạn từ bảng điều khiển Tổng quan.
- Thay thế
<BROWSERBASE_API_KEY>bằng khóa API Browserbase thực của bạn. - Browserbase tự động tạo một phiên trình duyệt khi kết nối WebSocket, vì vậy không cần bước tạo phiên thủ công.
- Gói miễn phí cho phép một phiên đồng thời và một giờ trình duyệt mỗi tháng. Xem giá cả để biết giới hạn gói trả phí.
- Xem tài liệu Browserbase để biết tham chiếu API đầy đủ, hướng dẫn SDK và ví dụ tích hợp.
Bảo mật
Các ý tưởng chính:- Điều khiển trình duyệt chỉ qua loopback; truy cập thông qua xác thực của Gateway hoặc ghép nối node.
- Nếu điều khiển trình duyệt được kích hoạt và không có xác thực nào được cấu hình, OpenClaw tự động tạo
gateway.auth.tokenkhi khởi động và lưu nó vào cấu hình. - Giữ Gateway và bất kỳ node host nào trên mạng riêng (Tailscale); tránh phơi bày công khai.
- Xem URL/tokens CDP từ xa như bí mật; ưu tiên biến môi trường hoặc trình quản lý bí mật.
- Ưu tiên các điểm cuối được mã hóa (HTTPS hoặc WSS) và token ngắn hạn nếu có thể.
- Tránh nhúng token dài hạn trực tiếp vào file cấu hình.
Hồ sơ (đa trình duyệt)
OpenClaw hỗ trợ nhiều hồ sơ được đặt tên (cấu hình định tuyến). Hồ sơ có thể là:- do openclaw quản lý: một phiên bản trình duyệt dựa trên Chromium chuyên dụng với thư mục dữ liệu người dùng riêng + cổng CDP
- từ xa: một URL CDP rõ ràng (trình duyệt dựa trên Chromium chạy ở nơi khác)
- phiên hiện có: hồ sơ Chrome hiện có của bạn qua Chrome DevTools MCP tự động kết nối
- Hồ sơ
openclawđược tự động tạo nếu thiếu. - Hồ sơ
userđược tích hợp sẵn cho đính kèm phiên hiện có của Chrome MCP. - Hồ sơ phiên hiện có là tùy chọn ngoài
user; tạo chúng với--driver existing-session. - Các cổng CDP cục bộ phân bổ từ 18800–18899 theo mặc định.
- Xóa một hồ sơ sẽ di chuyển thư mục dữ liệu cục bộ của nó vào Thùng rác.
?profile=<name>; CLI sử dụng --browser-profile.
Phiên hiện có qua Chrome DevTools MCP
OpenClaw cũng có thể đính kèm vào một hồ sơ trình duyệt dựa trên Chromium đang chạy thông qua máy chủ Chrome DevTools MCP chính thức. Điều này tái sử dụng các tab và trạng thái đăng nhập đã mở trong hồ sơ trình duyệt đó. Tham khảo nền tảng và thiết lập chính thức:- Chrome for Developers: Sử dụng Chrome DevTools MCP với phiên trình duyệt của bạn
- README Chrome DevTools MCP
user
- Hồ sơ
usertích hợp sử dụng Chrome MCP tự động kết nối, nhắm mục tiêu hồ sơ Google Chrome cục bộ mặc định.
userDataDir cho Brave, Edge, Chromium hoặc hồ sơ Chrome không mặc định:
- Mở trang kiểm tra của trình duyệt đó để gỡ lỗi từ xa.
- Kích hoạt gỡ lỗi từ xa.
- Giữ trình duyệt chạy và chấp nhận lời nhắc kết nối khi OpenClaw đính kèm.
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
statushiển thịdriver: existing-sessionstatushiển thịtransport: chrome-mcpstatushiển thịrunning: truetabsliệt kê các tab trình duyệt đã mở của bạnsnapshottrả về các tham chiếu từ tab trực tiếp đã chọn
- trình duyệt dựa trên Chromium mục tiêu là phiên bản
144+ - gỡ lỗi từ xa được kích hoạt trong trang kiểm tra của trình duyệt đó
- trình duyệt đã hiển thị và bạn đã chấp nhận lời nhắc đính kèm
openclaw doctordi chuyển cấu hình trình duyệt dựa trên extension cũ và kiểm tra rằng Chrome được cài đặt cục bộ cho các hồ sơ tự động kết nối mặc định, nhưng nó không thể kích hoạt gỡ lỗi từ xa phía trình duyệt cho bạn
- Sử dụng
profile="user"khi bạn cần trạng thái trình duyệt đã đăng nhập của người dùng. - Nếu bạn sử dụng hồ sơ phiên hiện có tùy chỉnh, hãy truyền tên hồ sơ rõ ràng đó.
- Chỉ chọn chế độ này khi người dùng đang ở máy tính để chấp nhận lời nhắc đính kèm.
- Gateway hoặc node host có thể khởi chạy
npx chrome-devtools-mcp@latest --autoConnect
- Đường dẫn này có rủi ro cao hơn so với hồ sơ
openclawtách biệt vì nó có thể hoạt động bên trong phiên trình duyệt đã đăng nhập của bạn. - OpenClaw không khởi chạy trình duyệt cho driver này; nó chỉ đính kèm vào một phiên hiện có.
- OpenClaw sử dụng luồng
--autoConnectcủa Chrome DevTools MCP chính thức ở đây. NếuuserDataDirđược đặt, OpenClaw truyền nó để nhắm mục tiêu thư mục dữ liệu người dùng Chromium rõ ràng đó. - Ảnh chụp màn hình phiên hiện có hỗ trợ chụp trang và chụp phần tử từ ảnh chụp nhanh, nhưng không hỗ trợ bộ chọn CSS
--element. - Phiên hiện có
wait --urlhỗ trợ các mẫu chính xác, chuỗi con và glob như các driver trình duyệt khác.wait --load networkidlechưa được hỗ trợ. - Một số tính năng vẫn yêu cầu đường dẫn trình duyệt được quản lý, chẳng hạn như xuất PDF và chặn tải xuống.
- Phiên hiện có là cục bộ máy chủ. Nếu Chrome nằm trên một máy khác hoặc một không gian tên mạng khác, hãy sử dụng CDP từ xa hoặc một node host thay thế.
Đảm bảo cách ly
- Thư mục dữ liệu người dùng chuyên dụng: không bao giờ can thiệp vào hồ sơ trình duyệt cá nhân của bạn.
- Cổng chuyên dụng: tránh
9222để ngăn ngừa xung đột với các luồng công việc phát triển. - Kiểm soát tab có tính quyết định: nhắm mục tiêu các tab bằng
targetId, không phải “tab cuối cùng”.
Lựa chọn trình duyệt
Khi khởi chạy cục bộ, OpenClaw chọn trình duyệt có sẵn đầu tiên:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Nền tảng:
- macOS: kiểm tra
/Applicationsvà~/Applications. - Linux: tìm
google-chrome,brave,microsoft-edge,chromium, v.v. - Windows: kiểm tra các vị trí cài đặt phổ biến.
API điều khiển (tùy chọn)
Chỉ dành cho tích hợp cục bộ, Gateway cung cấp một API HTTP loopback nhỏ:- Trạng thái/bắt đầu/dừng:
GET /,POST /start,POST /stop - Tab:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Chụp nhanh/chụp màn hình:
GET /snapshot,POST /screenshot - Hành động:
POST /navigate,POST /act - Hooks:
POST /hooks/file-chooser,POST /hooks/dialog - Tải xuống:
POST /download,POST /wait/download - Gỡ lỗi:
GET /console,POST /pdf - Gỡ lỗi:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Mạng:
POST /response/body - Trạng thái:
GET /cookies,POST /cookies/set,POST /cookies/clear - Trạng thái:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Cài đặt:
POST /set/offline,POST /set/headers,POST /set/credentials,POST /set/geolocation,POST /set/media,POST /set/timezone,POST /set/locale,POST /set/device
?profile=<name>.
Nếu xác thực gateway được cấu hình, các tuyến HTTP trình duyệt cũng yêu cầu xác thực:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>hoặc xác thực HTTP Basic với mật khẩu đó
Yêu cầu Playwright
Một số tính năng (điều hướng/hành động/ảnh chụp nhanh AI/ảnh chụp nhanh vai trò, ảnh chụp màn hình phần tử, PDF) yêu cầu Playwright. Nếu Playwright không được cài đặt, các điểm cuối đó sẽ trả về lỗi 501 rõ ràng. Ảnh chụp nhanh ARIA và ảnh chụp màn hình cơ bản vẫn hoạt động cho Chrome do openclaw quản lý. Nếu bạn thấyPlaywright is not available in this gateway build, hãy cài đặt gói Playwright đầy đủ (không phải playwright-core) và khởi động lại gateway, hoặc cài đặt lại OpenClaw với hỗ trợ trình duyệt.
Cài đặt Docker Playwright
Nếu Gateway của bạn chạy trong Docker, tránhnpx playwright (xung đột ghi đè npm). Sử dụng CLI đi kèm thay thế:
PLAYWRIGHT_BROWSERS_PATH (ví dụ, /home/node/.cache/ms-playwright) và đảm bảo /home/node được duy trì thông qua OPENCLAW_HOME_VOLUME hoặc một mount bind. Xem Docker.
Cách hoạt động (nội bộ)
Luồng cấp cao:- Một máy chủ điều khiển nhỏ chấp nhận các yêu cầu HTTP.
- Nó kết nối với các trình duyệt dựa trên Chromium (Chrome/Brave/Edge/Chromium) qua CDP.
- Đối với các hành động nâng cao (nhấp/gõ/ảnh chụp nhanh/PDF), nó sử dụng Playwright trên CDP.
- Khi Playwright bị thiếu, chỉ các hoạt động không phải Playwright mới có sẵn.
Tham khảo nhanh CLI
Tất cả các lệnh chấp nhận--browser-profile <name> để nhắm mục tiêu một hồ sơ cụ thể. Tất cả các lệnh cũng chấp nhận --json để xuất đầu ra có thể đọc được bằng máy (payload ổn định).
Cơ bản:
openclaw browser statusopenclaw browser startopenclaw browser stopopenclaw browser tabsopenclaw browser tabopenclaw browser tab newopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://example.comopenclaw browser focus abcd1234openclaw browser close abcd1234
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref 12openclaw browser screenshot --ref e12openclaw browser snapshotopenclaw browser snapshot --format aria --limit 200openclaw browser snapshot --interactive --compact --depth 6openclaw browser snapshot --efficientopenclaw browser snapshot --labelsopenclaw browser snapshot --selector "#main" --interactiveopenclaw browser snapshot --frame "iframe#main" --interactiveopenclaw browser console --level erroropenclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000
openclaw browser navigate https://example.comopenclaw browser resize 1280 720openclaw browser click 12 --doubleopenclaw browser click e12 --doubleopenclaw browser type 23 "hello" --submitopenclaw browser press Enteropenclaw browser hover 44openclaw browser scrollintoview e12openclaw browser drag 10 11openclaw browser select 9 OptionA OptionBopenclaw browser download e12 report.pdfopenclaw browser waitfordownload report.pdfopenclaw browser upload /tmp/openclaw/uploads/file.pdfopenclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'openclaw browser dialog --acceptopenclaw browser wait --text "Done"openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"openclaw browser evaluate --fn '(el) => el.textContent' --ref 7openclaw browser highlight e12openclaw browser trace startopenclaw browser trace stop
openclaw browser cookiesopenclaw browser cookies set session abc123 --url "https://example.com"openclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set theme darkopenclaw browser storage session clearopenclaw browser set offline onopenclaw browser set headers --headers-json '{"X-Debug":"1"}'openclaw browser set credentials user passopenclaw browser set credentials --clearopenclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"openclaw browser set geo --clearopenclaw browser set media darkopenclaw browser set timezone America/New_Yorkopenclaw browser set locale en-USopenclaw browser set device "iPhone 14"
uploadvàdialoglà các cuộc gọi arming; chạy chúng trước khi nhấp/nhấn kích hoạt bộ chọn/hộp thoại.- Đường dẫn đầu ra tải xuống và theo dõi bị giới hạn trong các gốc tạm thời của OpenClaw:
- theo dõi:
/tmp/openclaw(dự phòng:${os.tmpdir()}/openclaw) - tải xuống:
/tmp/openclaw/downloads(dự phòng:${os.tmpdir()}/openclaw/downloads)
- theo dõi:
- Đường dẫn tải lên bị giới hạn trong một gốc tải lên tạm thời của OpenClaw:
- tải lên:
/tmp/openclaw/uploads(dự phòng:${os.tmpdir()}/openclaw/uploads)
- tải lên:
uploadcũng có thể đặt trực tiếp các đầu vào file qua--input-refhoặc--element.snapshot:--format ai(mặc định khi Playwright được cài đặt): trả về một ảnh chụp nhanh AI với các tham chiếu số (aria-ref="<n>").--format aria: trả về cây truy cập (không có tham chiếu; chỉ kiểm tra).--efficient(hoặc--mode efficient): cài đặt trước ảnh chụp nhanh vai trò gọn nhẹ (tương tác + gọn nhẹ + độ sâu + maxChars thấp hơn).- Mặc định cấu hình (chỉ công cụ/CLI): đặt
browser.snapshotDefaults.mode: "efficient"để sử dụng ảnh chụp nhanh hiệu quả khi người gọi không truyền chế độ (xem Cấu hình Gateway). - Các tùy chọn ảnh chụp nhanh vai trò (
--interactive,--compact,--depth,--selector) buộc một ảnh chụp nhanh dựa trên vai trò với các tham chiếu nhưref=e12. --frame "<iframe selector>"giới hạn ảnh chụp nhanh vai trò vào một iframe (kết hợp với các tham chiếu vai trò nhưe12).--interactivexuất một danh sách phẳng, dễ chọn các phần tử tương tác (tốt nhất để thực hiện hành động).--labelsthêm một ảnh chụp màn hình chỉ có viewport với các nhãn tham chiếu được phủ lên (inMEDIA:<path>).
click/type/v.v. yêu cầu mộtreftừsnapshot(hoặc số12hoặc tham chiếu vai tròe12). Các bộ chọn CSS không được hỗ trợ cho các hành động.
Ảnh chụp nhanh và tham chiếu
OpenClaw hỗ trợ hai kiểu “ảnh chụp nhanh”:-
Ảnh chụp nhanh AI (tham chiếu số):
openclaw browser snapshot(mặc định;--format ai)- Đầu ra: một ảnh chụp nhanh văn bản bao gồm các tham chiếu số.
- Hành động:
openclaw browser click 12,openclaw browser type 23 "hello". - Nội bộ, tham chiếu được giải quyết qua
aria-refcủa Playwright.
-
Ảnh chụp nhanh vai trò (tham chiếu vai trò như
e12):openclaw browser snapshot --interactive(hoặc--compact,--depth,--selector,--frame)- Đầu ra: một danh sách/cây dựa trên vai trò với
[ref=e12](và tùy chọn[nth=1]). - Hành động:
openclaw browser click e12,openclaw browser highlight e12. - Nội bộ, tham chiếu được giải quyết qua
getByRole(...)(cộng vớinth()cho các bản sao). - Thêm
--labelsđể bao gồm một ảnh chụp màn hình viewport với các nhãne12được phủ lên.
- Đầu ra: một danh sách/cây dựa trên vai trò với
- Tham chiếu không ổn định qua các điều hướng; nếu có gì đó thất bại, chạy lại
snapshotvà sử dụng một tham chiếu mới. - Nếu ảnh chụp nhanh vai trò được thực hiện với
--frame, các tham chiếu vai trò được giới hạn trong iframe đó cho đến ảnh chụp nhanh vai trò tiếp theo.
Tăng cường chờ
Bạn có thể chờ đợi nhiều hơn chỉ thời gian/văn bản:- Chờ URL (hỗ trợ glob bởi Playwright):
openclaw browser wait --url "**/dash"
- Chờ trạng thái tải:
openclaw browser wait --load networkidle
- Chờ một điều kiện JS:
openclaw browser wait --fn "window.ready===true"
- Chờ một bộ chọn trở nên hiển thị:
openclaw browser wait "#main"
Quy trình gỡ lỗi
Khi một hành động thất bại (ví dụ: “không hiển thị”, “vi phạm chế độ nghiêm ngặt”, “bị che phủ”):openclaw browser snapshot --interactive- Sử dụng
click <ref>/type <ref>(ưu tiên tham chiếu vai trò trong chế độ tương tác) - Nếu vẫn thất bại:
openclaw browser highlight <ref>để xem Playwright đang nhắm mục tiêu gì - Nếu trang hoạt động kỳ lạ:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Để gỡ lỗi sâu: ghi lại một dấu vết:
openclaw browser trace start- tái tạo vấn đề
openclaw browser trace stop(inTRACE:<path>)
Đầu ra JSON
--json dành cho scripting và công cụ có cấu trúc.
Ví dụ:
refs cộng với một khối stats nhỏ (dòng/ký tự/refs/tương tác) để các công cụ có thể suy luận về kích thước và mật độ payload.
Các nút trạng thái và môi trường
Những điều này hữu ích cho các quy trình “làm cho trang web hoạt động như X”:- Cookies:
cookies,cookies set,cookies clear - Lưu trữ:
storage local|session get|set|clear - Ngoại tuyến:
set offline on|off - Headers:
set headers --headers-json '{"X-Debug":"1"}'(hỗ trợset headers --json '{"X-Debug":"1"}'cũ vẫn được hỗ trợ) - Xác thực HTTP cơ bản:
set credentials user pass(hoặc--clear) - Định vị địa lý:
set geo <lat> <lon> --origin "https://example.com"(hoặc--clear) - Phương tiện:
set media dark|light|no-preference|none - Múi giờ / ngôn ngữ:
set timezone ...,set locale ... - Thiết bị / viewport:
set device "iPhone 14"(cài đặt trước thiết bị Playwright)set viewport 1280 720
Bảo mật & quyền riêng tư
- Hồ sơ trình duyệt openclaw có thể chứa các phiên đã đăng nhập; coi nó là nhạy cảm.
browser act kind=evaluate/openclaw browser evaluatevàwait --fnthực thi JavaScript tùy ý trong ngữ cảnh trang. Tiêm lệnh có thể điều khiển điều này. Vô hiệu hóa nó vớibrowser.evaluateEnabled=falsenếu bạn không cần.- Đối với đăng nhập và ghi chú chống bot (X/Twitter, v.v.), xem Đăng nhập trình duyệt + đăng bài X/Twitter.
- Giữ Gateway/node host riêng tư (chỉ loopback hoặc tailnet).
- Các điểm cuối CDP từ xa rất mạnh; đường hầm và bảo vệ chúng.
Gỡ lỗi
Đối với các vấn đề cụ thể của Linux (đặc biệt là snap Chromium), xem Gỡ lỗi trình duyệt. Đối với các thiết lập Gateway WSL2 + Windows Chrome chia máy chủ, xem Gỡ lỗi WSL2 + Windows + remote Chrome CDP.Công cụ agent + cách điều khiển hoạt động
Agent có một công cụ cho tự động hóa trình duyệt:browser— trạng thái/bắt đầu/dừng/tabs/mở/tập trung/đóng/ảnh chụp nhanh/chụp màn hình/điều hướng/hành động
browser snapshottrả về một cây UI ổn định (AI hoặc ARIA).browser actsử dụng các IDreftừ ảnh chụp nhanh để nhấp/gõ/kéo/chọn.browser screenshotchụp ảnh (toàn trang hoặc phần tử).browserchấp nhận:profileđể chọn một hồ sơ trình duyệt được đặt tên (openclaw, chrome, hoặc CDP từ xa).target(sandbox|host|node) để chọn nơi trình duyệt sống.- Trong các phiên sandboxed,
target: "host"yêu cầuagents.defaults.sandbox.browser.allowHostControl=true. - Nếu
targetbị bỏ qua: các phiên sandboxed mặc định làsandbox, các phiên không sandbox mặc định làhost. - Nếu một node có khả năng trình duyệt được kết nối, công cụ có thể tự động định tuyến đến nó trừ khi bạn ghim
target="host"hoặctarget="node".