openclaw browser
CLI ve betikleme kalıpları (anlık görüntüler, ref’ler, beklemeler, hata ayıklama akışları) için başvurudur.
Control API (isteğe bağlı)
Yalnızca yerel entegrasyonlar için Gateway küçük bir loopback HTTP API açığa çıkarır:- Durum/başlat/durdur:
GET /,POST /start,POST /stop - Sekmeler:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Anlık görüntü/ekran görüntüsü:
GET /snapshot,POST /screenshot - Eylemler:
POST /navigate,POST /act - Kancalar:
POST /hooks/file-chooser,POST /hooks/dialog - İndirmeler:
POST /download,POST /wait/download - Hata ayıklama:
GET /console,POST /pdf - Hata ayıklama:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Ağ:
POST /response/body - Durum:
GET /cookies,POST /cookies/set,POST /cookies/clear - Durum:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Ayarlar:
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> kabul eder.
Paylaşılan gizli anahtar Gateway kimlik doğrulaması yapılandırılmışsa, tarayıcı HTTP yolları da kimlik doğrulama gerektirir:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>veya bu parolayla HTTP Basic auth
- Bu bağımsız loopback tarayıcı API’si trusted-proxy veya Tailscale Serve kimlik başlıklarını tüketmez.
gateway.auth.modedeğerinoneveyatrusted-proxyise, bu loopback tarayıcı yolları bu kimlik taşıyan modları miras almaz; bunları yalnızca loopback olarak tutun.
/act hata sözleşmesi
POST /act, rota düzeyi doğrulama ve
ilke hataları için yapılandırılmış bir hata yanıtı kullanır:
code değerleri:
ACT_KIND_REQUIRED(HTTP 400):kindeksik veya tanınmıyor.ACT_INVALID_REQUEST(HTTP 400): eylem payload’ı normalizasyon veya doğrulamadan geçemedi.ACT_SELECTOR_UNSUPPORTED(HTTP 400):selector, desteklenmeyen bir eylem türüyle kullanıldı.ACT_EVALUATE_DISABLED(HTTP 403):evaluate(veyawait --fn) yapılandırma tarafından devre dışı bırakıldı.ACT_TARGET_ID_MISMATCH(HTTP 403): üst düzey veya toplutargetId, istek hedefiyle çakışıyor.ACT_EXISTING_SESSION_UNSUPPORTED(HTTP 501): eylem, mevcut oturum profilleri için desteklenmiyor.
code
alanı olmadan { "error": "<message>" } döndürebilir.
Playwright gereksinimi
Bazı özellikler (navigate/act/AI snapshot/role snapshot, öğe ekran görüntüleri,
PDF) Playwright gerektirir. Playwright kurulu değilse bu uç noktalar
açık bir 501 hatası döndürür.
Playwright olmadan hâlâ çalışanlar:
- ARIA anlık görüntüleri
- Sekme başına CDP
WebSocket mevcut olduğunda yönetilen
openclawtarayıcısı için sayfa ekran görüntüleri existing-session/ Chrome MCP profilleri için sayfa ekran görüntüleri- Anlık görüntü çıktısından
existing-sessionref tabanlı ekran görüntüleri (--ref)
navigateact- AI anlık görüntüleri / role snapshot’lar
- CSS selector tabanlı öğe ekran görüntüleri (
--element) - tam tarayıcı PDF dışa aktarma
--full-page seçeneğini de reddeder; rota fullPage is not supported for element screenshots döndürür.
Playwright is not available in this gateway build görürseniz playwright-core kurulu olacak şekilde paketlenmiş tarayıcı Plugin çalışma zamanı bağımlılıklarını onarın,
ardından Gateway’i yeniden başlatın. Paketlenmiş kurulumlar için openclaw doctor --fix çalıştırın.
Docker için, aşağıda gösterildiği gibi Chromium tarayıcı ikili dosyalarını da kurun.
Docker Playwright kurulumu
Gateway’iniz Docker içinde çalışıyorsanpx playwright kullanmaktan kaçının (npm override çakışmaları).
Bunun yerine paketlenmiş CLI’yi kullanın:
PLAYWRIGHT_BROWSERS_PATH ayarlayın (örneğin,
/home/node/.cache/ms-playwright) ve /home/node yolunun
OPENCLAW_HOME_VOLUME veya bir bind mount üzerinden kalıcı olduğundan emin olun. Bkz. Docker.
Nasıl çalışır (iç yapı)
Küçük bir loopback kontrol sunucusu HTTP isteklerini kabul eder ve Chromium tabanlı tarayıcılara CDP üzerinden bağlanır. Gelişmiş eylemler (tıklama/yazma/anlık görüntü/PDF), CDP üzerinde Playwright üzerinden gider; Playwright eksik olduğunda yalnızca Playwright gerektirmeyen işlemler kullanılabilir. Agent, yerel/uzak tarayıcılar ve profiller altta serbestçe değişirken tek bir kararlı arayüz görür.CLI hızlı başvuru
Tüm komutlar belirli bir profili hedeflemek için--browser-profile <name> ve makine tarafından okunabilir çıktı için --json kabul eder.
Temeller: durum, sekmeler, aç/odaklan/kapat
Temeller: durum, sekmeler, aç/odaklan/kapat
İnceleme: ekran görüntüsü, anlık görüntü, konsol, hatalar, istekler
İnceleme: ekran görüntüsü, anlık görüntü, konsol, hatalar, istekler
Eylemler: gezinme, tıklama, yazma, sürükleme, bekleme, değerlendirme
Eylemler: gezinme, tıklama, yazma, sürükleme, bekleme, değerlendirme
Durum: çerezler, depolama, çevrimdışı, başlıklar, coğrafi konum, cihaz
Durum: çerezler, depolama, çevrimdışı, başlıklar, coğrafi konum, cihaz
uploadvedialoghazırlama çağrılarıdır; dosya seçici/diyaloğu tetikleyen tıklama/basma işleminden önce bunları çalıştırın.click/type/vb.snapshotçıktısından birrefgerektirir (sayısal12veya role refe12). Eylemler için CSS selector’lar bilerek desteklenmez.- İndirme, izleme ve yükleme yolları OpenClaw geçici kökleriyle sınırlandırılmıştır:
/tmp/openclaw{,/downloads,/uploads}(geri dönüş:${os.tmpdir()}/openclaw/...). upload, dosya girdilerini doğrudan--input-refveya--elementile de ayarlayabilir.
--format ai(Playwright ile varsayılan): sayısal ref’li AI anlık görüntüsü (aria-ref="<n>").--format aria: erişilebilirlik ağacı, ref yok; yalnızca inceleme için.--efficient(veya--mode efficient): compact role snapshot ön ayarı. Bunu varsayılan yapmak içinbrowser.snapshotDefaults.mode: "efficient"ayarlayın (bkz. Gateway yapılandırması).--interactive,--compact,--depth,--selectorrole snapshot’ıref=e12ref’leriyle zorlar.--frame "<iframe>", role snapshot’ları bir iframe ile sınırlar.--labels, üstüne ref etiketleri bindirilmiş yalnızca görünüm alanı ekran görüntüsü ekler (MEDIA:<path>yazdırır).
Anlık görüntüler ve ref’ler
OpenClaw iki “anlık görüntü” stilini destekler:-
AI anlık görüntüsü (sayısal ref’ler):
openclaw browser snapshot(varsayılan;--format ai)- Çıktı: sayısal ref’ler içeren metin anlık görüntüsü.
- Eylemler:
openclaw browser click 12,openclaw browser type 23 "hello". - İçte, ref Playwright’ın
aria-refözelliğiyle çözülür.
-
Role snapshot (ör.
e12gibi role ref’ler):openclaw browser snapshot --interactive(veya--compact,--depth,--selector,--frame)- Çıktı:
[ref=e12](ve isteğe bağlı[nth=1]) içeren role tabanlı liste/ağaç. - Eylemler:
openclaw browser click e12,openclaw browser highlight e12. - İçte, ref
getByRole(...)ile çözülür (yinelenenler içinnth()ile birlikte). - Üstüne bindirilmiş
e12etiketli görünüm alanı ekran görüntüsü eklemek için--labelskullanın.
- Çıktı:
- Ref’ler gezinmeler arasında kararlı değildir; bir şey başarısız olursa
snapshotkomutunu yeniden çalıştırın ve yeni bir ref kullanın. - Role snapshot
--frameile alındıysa role ref’leri bir sonraki role snapshot’a kadar o iframe ile sınırlıdır.
Bekleme güçlendirmeleri
Yalnızca zaman/metin üzerinde beklemek zorunda değilsiniz:- URL bekleyin (Playwright tarafından globs desteklenir):
openclaw browser wait --url "**/dash"
- Yük durumu bekleyin:
openclaw browser wait --load networkidle
- Bir JS predicate bekleyin:
openclaw browser wait --fn "window.ready===true"
- Bir selector görünür olana kadar bekleyin:
openclaw browser wait "#main"
Hata ayıklama iş akışları
Bir eylem başarısız olduğunda (ör. “not visible”, “strict mode violation”, “covered”):openclaw browser snapshot --interactiveclick <ref>/type <ref>kullanın (etkileşimli modda role ref’leri tercih edin)- Hâlâ başarısız olursa: Playwright’ın neyi hedeflediğini görmek için
openclaw browser highlight <ref> - Sayfa garip davranıyorsa:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Derin hata ayıklama için bir iz kaydedin:
openclaw browser trace start- sorunu yeniden üretin
openclaw browser trace stop(TRACE:<path>yazdırır)
JSON çıktısı
--json, betikleme ve yapılandırılmış araç kullanımı içindir.
Örnekler:
refs ile birlikte küçük bir stats bloğu (satırlar/karakterler/ref’ler/interactive) içerir.
Durum ve ortam düğmeleri
Bunlar “siteyi X gibi davranmaya zorla” iş akışları için yararlıdır:- Çerezler:
cookies,cookies set,cookies clear - Depolama:
storage local|session get|set|clear - Çevrimdışı:
set offline on|off - Başlıklar:
set headers --headers-json '{"X-Debug":"1"}'(eskiset headers --json '{"X-Debug":"1"}'hâlâ desteklenir) - HTTP basic auth:
set credentials user pass(veya--clear) - Coğrafi konum:
set geo <lat> <lon> --origin "https://example.com"(veya--clear) - Medya:
set media dark|light|no-preference|none - Saat dilimi / yerel ayar:
set timezone ...,set locale ... - Cihaz / görünüm alanı:
set device "iPhone 14"(Playwright cihaz ön ayarları)set viewport 1280 720
Güvenlik ve gizlilik
- openclaw tarayıcı profili oturum açılmış oturumlar içerebilir; bunu hassas kabul edin.
browser act kind=evaluate/openclaw browser evaluatevewait --fn, sayfa bağlamında rastgele JavaScript çalıştırır. Prompt injection bunu yönlendirebilir. Buna ihtiyacınız yoksabrowser.evaluateEnabled=falseile devre dışı bırakın.- Girişler ve anti-bot notları (X/Twitter vb.) için bkz. Browser login + X/Twitter posting.
- Gateway/node ana makinesini özel tutun (yalnızca loopback veya tailnet).
- Uzak CDP uç noktaları güçlüdür; onları tünelleyin ve koruyun.
İlgili
- Browser — genel bakış, yapılandırma, profiller, güvenlik
- Browser login — sitelerde oturum açma
- Browser Linux troubleshooting
- Browser WSL2 troubleshooting