openclaw browser,
dan pola scripting (snapshot, ref, wait, alur debug).
API Kontrol (opsional)
Untuk integrasi lokal saja, Gateway mengekspos API HTTP loopback kecil:- Status/start/stop:
GET /,POST /start,POST /stop - Tab:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Snapshot/screenshot:
GET /snapshot,POST /screenshot - Actions:
POST /navigate,POST /act - Hooks:
POST /hooks/file-chooser,POST /hooks/dialog - Unduhan:
POST /download,POST /wait/download - Debugging:
GET /console,POST /pdf - Debugging:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Jaringan:
POST /response/body - State:
GET /cookies,POST /cookies/set,POST /cookies/clear - State:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Pengaturan:
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>.
Jika auth gateway shared-secret dikonfigurasi, rute HTTP browser juga memerlukan auth:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>atau HTTP Basic auth dengan kata sandi tersebut
- API browser loopback mandiri ini tidak mengonsumsi header identitas trusted-proxy atau Tailscale Serve.
- Jika
gateway.auth.modeadalahnoneatautrusted-proxy, rute browser loopback ini tidak mewarisi mode pembawa identitas tersebut; pertahankan tetap khusus loopback.
Kontrak galat /act
POST /act menggunakan respons galat terstruktur untuk validasi tingkat rute dan
kegagalan kebijakan:
code saat ini:
ACT_KIND_REQUIRED(HTTP 400):kindhilang atau tidak dikenali.ACT_INVALID_REQUEST(HTTP 400): payload tindakan gagal normalisasi atau validasi.ACT_SELECTOR_UNSUPPORTED(HTTP 400):selectordigunakan dengan jenis tindakan yang tidak didukung.ACT_EVALUATE_DISABLED(HTTP 403):evaluate(atauwait --fn) dinonaktifkan oleh config.ACT_TARGET_ID_MISMATCH(HTTP 403):targetIdtingkat atas atau batched bertentangan dengan target permintaan.ACT_EXISTING_SESSION_UNSUPPORTED(HTTP 501): tindakan tidak didukung untuk profil existing-session.
{ "error": "<message>" } tanpa
field code.
Kebutuhan Playwright
Beberapa fitur (navigate/act/AI snapshot/role snapshot, screenshot elemen, PDF) memerlukan Playwright. Jika Playwright tidak terinstal, endpoint tersebut mengembalikan galat 501 yang jelas. Yang masih berfungsi tanpa Playwright:- Snapshot ARIA
- Screenshot halaman untuk browser
openclawterkelola saat WebSocket CDP per-tab tersedia - Screenshot halaman untuk profil
existing-session/ Chrome MCP - Screenshot berbasis ref
existing-session(--ref) dari output snapshot
navigateact- AI snapshot / role snapshot
- Screenshot elemen selector CSS (
--element) - Ekspor PDF browser penuh
--full-page; rute mengembalikan fullPage is not supported for element screenshots.
Jika Anda melihat Playwright is not available in this gateway build, perbaiki
dependensi runtime Plugin browser bawaan agar playwright-core terinstal,
lalu mulai ulang gateway. Untuk instalasi terpaket, jalankan openclaw doctor --fix.
Untuk Docker, instal juga biner browser Chromium seperti ditunjukkan di bawah.
Instalasi Docker Playwright
Jika Gateway Anda berjalan di Docker, hindarinpx playwright (konflik override npm).
Gunakan CLI bawaan sebagai gantinya:
PLAYWRIGHT_BROWSERS_PATH (misalnya,
/home/node/.cache/ms-playwright) dan pastikan /home/node dipersistenkan melalui
OPENCLAW_HOME_VOLUME atau bind mount. Lihat Docker.
Cara kerjanya (internal)
Server kontrol loopback kecil menerima permintaan HTTP dan terhubung ke browser berbasis Chromium melalui CDP. Tindakan lanjutan (click/type/snapshot/PDF) melalui Playwright di atas CDP; ketika Playwright tidak ada, hanya operasi non-Playwright yang tersedia. Agen melihat satu antarmuka stabil sementara browser dan profil lokal/remote dapat ditukar bebas di bawahnya.Referensi cepat CLI
Semua perintah menerima--browser-profile <name> untuk menargetkan profil tertentu, dan --json untuk output yang dapat dibaca mesin.
Dasar: status, tab, buka/fokus/tutup
Dasar: status, tab, buka/fokus/tutup
Inspeksi: screenshot, snapshot, console, errors, requests
Inspeksi: screenshot, snapshot, console, errors, requests
Tindakan: navigate, click, type, drag, wait, evaluate
Tindakan: navigate, click, type, drag, wait, evaluate
State: cookies, storage, offline, headers, geo, device
State: cookies, storage, offline, headers, geo, device
uploaddandialogadalah panggilan arming; jalankan sebelum click/press yang memicu chooser/dialog.click/type/dll. memerlukanrefdarisnapshot(numerik12atau ref rolee12). Selector CSS sengaja tidak didukung untuk actions.- Path download, trace, dan upload dibatasi ke root temp OpenClaw:
/tmp/openclaw{,/downloads,/uploads}(fallback:${os.tmpdir()}/openclaw/...). uploadjuga dapat menyetel input file secara langsung melalui--input-refatau--element.
--format ai(default dengan Playwright): AI snapshot dengan ref numerik (aria-ref="<n>").--format aria: accessibility tree, tanpa ref; hanya untuk inspeksi.--efficient(atau--mode efficient): preset role snapshot ringkas. Setelbrowser.snapshotDefaults.mode: "efficient"agar ini menjadi default (lihat Gateway configuration).--interactive,--compact,--depth,--selectormemaksa role snapshot dengan refref=e12.--frame "<iframe>"membatasi role snapshot ke sebuah iframe.--labelsmenambahkan screenshot khusus viewport dengan label ref yang dioverlay (mencetakMEDIA:<path>).
Snapshot dan ref
OpenClaw mendukung dua gaya “snapshot”:-
AI snapshot (ref numerik):
openclaw browser snapshot(default;--format ai)- Output: snapshot teks yang menyertakan ref numerik.
- Actions:
openclaw browser click 12,openclaw browser type 23 "hello". - Secara internal, ref diresolusikan melalui
aria-refmilik Playwright.
-
Role snapshot (ref role seperti
e12):openclaw browser snapshot --interactive(atau--compact,--depth,--selector,--frame)- Output: daftar/pohon berbasis role dengan
[ref=e12](dan opsional[nth=1]). - Actions:
openclaw browser click e12,openclaw browser highlight e12. - Secara internal, ref diresolusikan melalui
getByRole(...)(ditambahnth()untuk duplikat). - Tambahkan
--labelsuntuk menyertakan screenshot viewport dengan labele12dioverlay.
- Output: daftar/pohon berbasis role dengan
- Ref tidak stabil antar navigasi; jika sesuatu gagal, jalankan ulang
snapshotdan gunakan ref baru. - Jika role snapshot diambil dengan
--frame, ref role dibatasi ke iframe tersebut sampai role snapshot berikutnya.
Power-up wait
Anda dapat menunggu lebih dari sekadar waktu/teks:- Tunggu URL (glob didukung oleh Playwright):
openclaw browser wait --url "**/dash"
- Tunggu load state:
openclaw browser wait --load networkidle
- Tunggu predicate JS:
openclaw browser wait --fn "window.ready===true"
- Tunggu selector menjadi terlihat:
openclaw browser wait "#main"
Alur kerja debug
Saat suatu tindakan gagal (misalnya “not visible”, “strict mode violation”, “covered”):openclaw browser snapshot --interactive- Gunakan
click <ref>/type <ref>(pilih ref role dalam mode interaktif) - Jika masih gagal:
openclaw browser highlight <ref>untuk melihat apa yang ditargetkan Playwright - Jika halaman berperilaku aneh:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Untuk debugging mendalam: rekam trace:
openclaw browser trace start- reproduksi masalah
openclaw browser trace stop(mencetakTRACE:<path>)
Output JSON
--json ditujukan untuk scripting dan tooling terstruktur.
Contoh:
refs plus blok stats kecil (lines/chars/refs/interactive) sehingga alat dapat menalar ukuran dan kepadatan payload.
Knob state dan environment
Ini berguna untuk alur kerja “buat situs berperilaku seperti X”:- Cookies:
cookies,cookies set,cookies clear - Penyimpanan:
storage local|session get|set|clear - Offline:
set offline on|off - Headers:
set headers --headers-json '{"X-Debug":"1"}'(legacyset headers --json '{"X-Debug":"1"}'tetap didukung) - HTTP basic auth:
set credentials user pass(atau--clear) - Geolokasi:
set geo <lat> <lon> --origin "https://example.com"(atau--clear) - Media:
set media dark|light|no-preference|none - Timezone / locale:
set timezone ...,set locale ... - Device / viewport:
set device "iPhone 14"(preset device Playwright)set viewport 1280 720
Keamanan dan privasi
- Profil browser openclaw dapat berisi sesi yang sudah login; perlakukan sebagai sensitif.
browser act kind=evaluate/openclaw browser evaluatedanwait --fnmengeksekusi JavaScript sebarang di konteks halaman. Prompt injection dapat mengarahkan ini. Nonaktifkan denganbrowser.evaluateEnabled=falsejika Anda tidak membutuhkannya.- Untuk login dan catatan anti-bot (X/Twitter, dll.), lihat Browser login + X/Twitter posting.
- Pertahankan host Gateway/Node tetap privat (hanya loopback atau tailnet).
- Endpoint CDP remote sangat kuat; tunnel dan lindungi endpoint tersebut.
Terkait
- Browser — ikhtisar, konfigurasi, profil, keamanan
- Browser login — masuk ke situs
- Browser Linux troubleshooting
- Browser WSL2 troubleshooting