# Automatyczne testowanie w przeglądarce

Speedwave potrafi z poziomu sesji sterować prawdziwą przeglądarką: otwierać strony, klikać i wpisywać tekst, wypełniać formularze, robić zrzuty ekranu, odczytywać wyrenderowany DOM i sprawdzać, czy dany element lub tekst jest widoczny. Odbywa się to w przeglądarce Chromium działającej bez interfejsu graficznego (headless), którą udostępnia oficjalny serwer `@playwright/mcp` firmy Microsoft. W [Automatyzacji przeglądarki](/pl/docs/integrations/web-automation/) zobaczysz, jak wpisuje się to w pozostałe integracje Speedwave.

## Kiedy po to sięgnąć

Zwykłe pobranie strony (web fetch) poradzi sobie tylko ze statycznym HTML-em. Po automatyzację przeglądarki sięgaj wtedy, gdy stronę renderuje JavaScript, gdy jest to aplikacja jednostronicowa (SPA), gdy treść potrzebuje czasu, żeby się załadować, albo gdy samo zadanie wymaga zrzutu ekranu, migawki wyrenderowanego DOM-u czy interakcji ze stroną.
**Tip:** W przypadku dokumentacji, plików README, wpisów na blogu i innych stron generowanych po stronie serwera zacznij od zwykłego pobrania. Sesja przeglądarki kosztuje znacznie więcej niż samo pobranie, więc przechodź na nią dopiero wtedy, gdy pobranie nie wystarcza.

## Co Speedwave potrafi zrobić w przeglądarce

Narzędzia obejmują nawigację, wydobywanie danych, interakcję i asercje:

- Nawigacja: przechodzenie między stronami, cofanie się, przełączanie kart.
- Wydobywanie danych: migawki dostępności, zrzuty ekranu, odczyt komunikatów konsoli i żądań sieciowych.
- Interakcja: klikanie, wpisywanie tekstu, wypełnianie formularzy, wybieranie opcji, naciskanie klawiszy, najeżdżanie kursorem, przeciąganie.
- Asercje i lokatory: sprawdzanie, czy element lub tekst jest widoczny, oraz tworzenie dla niego lokatorów.

Zrzuty ekranu i zrzuty strony trafiają wprost do odpowiedzi narzędzia. Przeglądarka nie zapisuje w twoim projekcie żadnych plików. W [Danych i prywatności](/pl/docs/security/data-and-privacy/) sprawdzisz, co sesja wysyła do modelu.

## Testowanie własnej aplikacji

Przeglądarka działa w kontenerze, więc `localhost` odnosi się tam do kontenera, a nie do twojego komputera. Aby skierować Speedwave na serwer deweloperski uruchomiony u ciebie lokalnie, wpisz w adresie URL `host.docker.internal` zamiast `localhost`, na przykład `http://host.docker.internal:4200` dla serwera deweloperskiego na porcie 4200.

## Sesje nie zachowują stanu

Każda sesja startuje z czystym profilem przeglądarki. Ciasteczka ani dane zapisane w jednej sesji nie przechodzą do kolejnej, więc logowanie wykonane w jednym uruchomieniu nie jest dostępne w następnym.

Kontener przeglądarki jest zabezpieczony tak samo jak każdy inny worker: wszystkie uprawnienia (capabilities) Linuksa odebrane, brak eskalacji uprawnień, główny system plików tylko do odczytu i zakaz uruchamiania czegokolwiek z pamięci tymczasowej. To, jaki ma zasięg sieciowy oraz z czym na twoim komputerze może, a z czym nie może się połączyć, opisuje [Model izolacji](/pl/docs/security/isolation/).