openclaw browser
Zarządzaj powierzchnią sterowania przeglądarką OpenClaw i uruchamiaj akcje przeglądarki (cykl życia, profile, karty, migawki, zrzuty ekranu, nawigacja, wprowadzanie danych, emulacja stanu i debugowanie).
Powiązane:
- Narzędzie przeglądarki + API: Narzędzie przeglądarki
Typowe flagi
--url <gatewayWsUrl>: adres URL WebSocket Gateway (domyślnie z konfiguracji).--token <token>: token Gateway (jeśli wymagany).--timeout <ms>: limit czasu żądania (ms).--expect-final: czekaj na końcową odpowiedź Gateway.--browser-profile <name>: wybierz profil przeglądarki (domyślnie z konfiguracji).--json: dane wyjściowe czytelne maszynowo (tam, gdzie obsługiwane).
Szybki start (lokalnie)
browser({ action: "doctor" }).
Szybkie rozwiązywanie problemów
Jeślistart kończy się błędem not reachable after start, najpierw rozwiąż problem z gotowością CDP. Jeśli start i tabs działają, ale open lub navigate kończy się niepowodzeniem, płaszczyzna sterowania przeglądarką jest zdrowa, a przyczyną błędu jest zwykle polityka SSRF dla nawigacji.
Minimalna sekwencja:
Cykl życia
doctor --deepdodaje sondę migawki na żywo. Jest przydatne, gdy podstawowa gotowość CDP jest zielona, ale chcesz dowodu, że bieżącą kartę można zbadać.- W przypadku profili
attachOnlyi zdalnych profili CDPopenclaw browser stopzamyka aktywną sesję sterowania i czyści tymczasowe nadpisania emulacji nawet wtedy, gdy OpenClaw nie uruchomił samodzielnie procesu przeglądarki. - W przypadku lokalnie zarządzanych profili
openclaw browser stopzatrzymuje uruchomiony proces przeglądarki. openclaw browser start --headlessdotyczy tylko tego żądania uruchomienia i tylko wtedy, gdy OpenClaw uruchamia lokalnie zarządzaną przeglądarkę. Nie przepisujebrowser.headlessani konfiguracji profilu i nie ma efektu dla już działającej przeglądarki.- Na hostach Linux bez
DISPLAYaniWAYLAND_DISPLAYlokalnie zarządzane profile działają automatycznie w trybie headless, chyba żeOPENCLAW_BROWSER_HEADLESS=0,browser.headless=falselubbrowser.profiles.<name>.headless=falsejawnie żąda widocznej przeglądarki.
Jeśli brakuje polecenia
Jeśliopenclaw browser jest nieznanym poleceniem, sprawdź plugins.allow w
~/.openclaw/openclaw.json.
Gdy plugins.allow jest obecne, jawnie wymień wbudowany Plugin przeglądarki,
chyba że konfiguracja ma już główny blok browser:
browser, na przykład browser.enabled=true lub
browser.profiles.<name>, również aktywuje wbudowany Plugin przeglądarki przy
restrykcyjnej liście dozwolonych Pluginów.
Powiązane: Narzędzie przeglądarki
Profile
Profile to nazwane konfiguracje routingu przeglądarki. W praktyce:openclaw: uruchamia lub dołącza do dedykowanej instancji Chrome zarządzanej przez OpenClaw (izolowany katalog danych użytkownika).user: steruje istniejącą, zalogowaną sesją Chrome przez Chrome DevTools MCP.- niestandardowe profile CDP: wskazują lokalny lub zdalny punkt końcowy CDP.
Karty
tabs zwraca najpierw suggestedTargetId, następnie stabilne tabId, takie jak t1,
opcjonalną etykietę oraz surowe targetId. Agenci powinni przekazywać
suggestedTargetId z powrotem do focus, close, migawek i akcji. Możesz
przypisać etykietę za pomocą open --label, tab new --label lub tab label; etykiety,
identyfikatory kart, surowe identyfikatory celów i unikalne prefiksy identyfikatorów celów są akceptowane.
Pole żądania nadal nazywa się targetId ze względu na zgodność, ale akceptuje
te odwołania do kart. Traktuj surowe identyfikatory celów jako uchwyty diagnostyczne, a nie trwałą
pamięć agenta.
Gdy Chromium zastępuje bazowy surowy cel podczas nawigacji lub wysłania formularza,
OpenClaw utrzymuje stabilne tabId/etykietę przypięte do karty zastępczej,
gdy może udowodnić dopasowanie. Surowe identyfikatory celów pozostają zmienne; preferuj
suggestedTargetId.
Migawka / zrzut ekranu / akcje
Migawka:--full-pagesłuży tylko do przechwytywania stron; nie można go łączyć z--refani--element.- Profile
existing-session/userobsługują zrzuty ekranu stron oraz zrzuty ekranu--refz danych wyjściowych migawki, ale nie zrzuty ekranu CSS--element. --labelsnakłada bieżące referencje migawki na zrzut ekranu. W profilach opartych na Playwright działa z--full-page(nakładka etykiet pełnej strony),--ref(nakładka etykiet wycinka elementu według referencji ARIA) oraz--element(nakładka etykiet wycinka elementu według selektora CSS); w trybach wycinka elementu etykiety są rzutowane względem elementu. Odpowiedź zawiera też tablicęannotationsz ramką ograniczającą każdej referencji. Każdy element maref,number,role, opcjonalnenameorazbox: {x, y, width, height}; współrzędne są w przestrzeni przechwyconego obrazu (viewport / pełna strona / względem elementu). Pole jest pomijane, gdy jest puste. Profileexisting-sessionrenderują nakładkę chrome-mcp na zrzutach ekranu stron, ale nie używają pomocnika projekcji Playwright i nie zawierająannotations; zrzuty ekranu CSS--elementnie są tam obsługiwane. Bez Playwright lub chrome-mcp etykietowane zrzuty ekranu nie są dostępne. Poprzednie wydania ignorowały--full-page,--refi--elementw etykietowanych zrzutach ekranu Playwright i zawsze zwracały przechwycony viewport; etykietowane zrzuty ekranu teraz respektują te zakresy.snapshot --urlsdołącza wykryte miejsca docelowe linków do migawek AI, aby agenci mogli wybierać bezpośrednie cele nawigacji zamiast zgadywać wyłącznie na podstawie tekstu linku.
evaluate --fn akceptuje źródło funkcji, wyrażenie lub ciało instrukcji.
Ciała instrukcji są opakowywane jako funkcje asynchroniczne, więc użyj return dla wartości,
którą chcesz otrzymać z powrotem. Użyj evaluate --timeout-ms <ms>, gdy funkcja po stronie strony może
potrzebować więcej czasu niż domyślny limit czasu evaluate.
Odpowiedzi akcji zwracają bieżące surowe targetId po zastąpieniu strony
wywołanym akcją, gdy OpenClaw może udowodnić kartę zastępczą. Skrypty powinny nadal
przechowywać i przekazywać suggestedTargetId/etykiety w długotrwałych przepływach pracy.
Pomocniki plików i okien dialogowych:
/tmp/openclaw/downloads domyślnie albo skonfigurowanym głównym katalogu tymczasowym).
Użyj waitfordownload lub download, gdy agent musi poczekać na
konkretny plik i zwrócić jego ścieżkę; te jawne oczekiwania przejmują następne pobranie.
Przesyłanie akceptuje pliki z głównego katalogu tymczasowych przesłań OpenClaw oraz zarządzanych przez OpenClaw
przychodzących multimediów, w tym referencje media://inbound/<id> i względne względem piaskownicy
media/inbound/<id>. Zagnieżdżone referencje multimediów, przechodzenie po katalogach i dowolne
ścieżki lokalne pozostają odrzucane.
Gdy akcja otwiera modalne okno dialogowe, odpowiedź akcji zwraca
blockedByDialog z browserState.dialogs.pending; przekaż --dialog-id, aby
odpowiedzieć bezpośrednio. Okna dialogowe obsłużone poza OpenClaw pojawiają się w
browserState.dialogs.recent.
Stan i przechowywanie
Viewport + emulacja:Debugowanie
Istniejący Chrome przez MCP
Użyj wbudowanego profiluuser albo utwórz własny profil existing-session:
--cdp-url, aby Chrome MCP dołączył zamiast tego do tego punktu końcowego.
W przypadku Dockera, Browserless lub innych zdalnych konfiguracji, w których semantyka Chrome MCP nie jest potrzebna, użyj
profilu CDP.
Obecne ograniczenia existing-session:
- akcje sterowane snapshotami używają referencji, a nie selektorów CSS
browser.actionTimeoutMsdomyślnie ustawia obsługiwane żądaniaactna 60000 ms, gdy wywołujący pominątimeoutMs;timeoutMsdla pojedynczego wywołania nadal ma pierwszeństwo.clickobsługuje tylko kliknięcie lewym przyciskiemtypenie obsługujeslowly=truepressnie obsługujedelayMshover,scrollintoview,drag,select,fillievaluateodrzucają nadpisania limitu czasu dla pojedynczego wywołaniaselectobsługuje tylko jedną wartośćwait --load networkidlenie jest obsługiwane w profilach istniejących sesji (działa w zarządzanych i surowych/zdalnych CDP)- przesyłanie plików wymaga
--ref/--input-ref, nie obsługuje CSS--elementi obecnie obsługuje jeden plik naraz - hooki dialogów nie obsługują
--timeout - zrzuty ekranu obsługują przechwytywanie strony i
--ref, ale nie CSS--element responsebody, przechwytywanie pobierania, eksport PDF i akcje wsadowe nadal wymagają zarządzanej przeglądarki lub surowego profilu CDP
Zdalne sterowanie przeglądarką (proxy hosta node)
Jeśli Gateway działa na innym komputerze niż przeglądarka, uruchom host node na komputerze, który ma Chrome/Brave/Edge/Chromium. Gateway będzie przekazywać akcje przeglądarki do tego węzła (osobny serwer sterowania przeglądarką nie jest wymagany). Użyjgateway.nodes.browser.mode, aby kontrolować automatyczne trasowanie, oraz gateway.nodes.browser.node, aby przypiąć konkretny węzeł, jeśli podłączonych jest wiele.
Bezpieczeństwo i konfiguracja zdalna: Narzędzie przeglądarki, Dostęp zdalny, Tailscale, Bezpieczeństwo