Playwright MCP (Model Context Protocol) i różne przykłady wykorzystania

UWAGA: Więcej szczegółów i informacje o wymaganych konfiguracjach znajdziesz pod nagraniem 😉

TIP: Przed rozpoczęciem pracy upewnij się, że:

  • korzystasz z wersji VS Code min. 1.99.2
  • jesteś zalogowany w VS Code na swoje konto z GitHuba
  • na koncie GitHub masz aktywnego CoPilota
  • masz włączoną opcję Chat › Agent: Enabled w User Settings (dostępne przez CTRL + SHIFT + P)
  • masz włączoną opcję Chat › Mcp: Enabled w User Settings (dostępne przez CTRL + SHIFT + P)
  • w terminalu w VS Code wykonałeś polecenie (na Windows):
    code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'
    

    lub:

    code --add-mcp '{\"name\":\"playwright\",\"command\":\"npx\",\"args\":[\"@playwright/mcp@latest\"]}'
    

    aby dodać serwer playwright/mcp do VS Code

Domyślna konfiguracja serwera Playwright MCP:

"mcp": {
    "servers": {
        "playwright": {
            "command": "npx",
            "args": [
                "@playwright/mcp@latest"
            ]
        }
    }
}

UWAGA: Zarówno Copilot Agent jak i playwright-mcp są w bardzo wczesnych wersjach.

Oznacza to, że ich działanie, możliwości, otrzymywane wyniki oraz sposób wykorzystania może się zmienić w przyszłości!

TIP: Lekcje tą realizujemy w oparciu o naszą autorska i darmową aplikację do testów 🦎GAD.

Jej instalacja jest ultra prosta i wymaga posiadania jedynie node.js 😉

Więcej o niej możesz poczytać w lekcjach i materiałach:

Najważniejsze skróty klawiszowe w VS Code

Otworzenie okna Copilota:

CTRL + SHIFT + I

Otworzenie poleceń w górnym menu (Command Palette):

CTRL + SHIFT + P

Otworzenie terminala:

CTRL + `

Wyszukiwanie informacji na stronach

Przykładowe polecenie do wyszukania informacji w sieci:

visit official Playwright repository on gitHub and find all issues that were reported by jaktestowac.pl

Tworzenie testów automatycznych

Przykładowe polecenie do przygotowania testów rejestracji i logowania:

open localhost:3000, find registration page and propose 2 e2e tests for user registration and login with same user

Przykładowe polecenie, aby agent znalazł rozwiązanie na popup z wyborem daty, który zasłania przycisk Register:

after clicking 'Enter Birth Date' there is a popup with date picker - open registration page and find the way to close it before clicking register button

Dobre praktyki pracy z Copilotem i agentem

  • Wiedza techniczna jest kluczowa, aby weryfikować sugestie AI
    Wiedza techniczna (na temat programowania czy danego narzędzia) pozwala skutecznie identyfikować błędy oraz nieprawidłowe zastosowanie mechanizmów proponowanych przez AI.
    AI może zaproponować rozwiązanie oparte na starszej wersji biblioteki lub błędnym założeniu. Jednak jeśli posiadasz wiedzę na dany temat to szybko wyłapiesz takie sytuacje.
  • Opisuj problem precyzyjnie i konkretnie
    Im dokładniej opiszesz problem, tym bardziej trafne będą odpowiedzi od AI.
    Zamiast: fix this, napisz: fix error that appears when clicking Register button and date picker is still open.
  • Używaj języka poleceń (imperatywnego)
    Krótkie, konkretne polecenia prowadzą do bardziej zrozumiałych i trafnych wyników.
    Zamiast pisać pytania typu: can you maybe try to..., użyj bezpośrednich instrukcji, np.: generate a selector for the login button, identify the cause of the "Network Error" message after submitting form.
  • Testuj pomysły od AI krok po kroku
    Sprawdzaj każdą zmianę osobno, zanim wdrożysz całość rozwiązania. Dzięki temu unikniesz narastania błędów.
    Na przykładzie:

    • first, propose a way to close date picker popup programmatically
    • then, suggest how to verify if the popup has successfully closed
    • finally, click the Register button and verify successful registration
  • Przy problemach – opisuj dokładnie co się dzieje
    Zamiast: doesnt work, napisz: click on the date field triggers a popup that blocks the Submit button.
  • Używaj Copilota do inspiracji, nie jako jedynego źródła prawdy
    AI daje sugestie, ale ostateczna decyzja należy do Ciebie. Weryfikuj zgodność rozwiązań z wymaganiami projektu oraz standardami kodowania.
    Np. po wygenerowaniu kodu zapytaj siebie: “Czy to rozwiązanie pasuje do naszych standardów jakości? Czy da się je uprościć?”
  • Ucz się na podstawie odpowiedzi AI
    Analizuj odpowiedzi zamiast ich biernego kopiowania.
    Zadawaj pytania pogłębiające zrozumienie, np.: why did you choose querySelectorAll instead of querySelector? albo why is await important in this context?.
  • Eksperymentuj z różnymi sformułowaniami
    Jeśli odpowiedź jest nieprecyzyjna – spróbuj inaczej opisać problem. Np. zamiast find register form napisz go to registration page and locate the form with fields: username, email, password.
  • Dodaj ograniczenia lub wymagania do promptu
    Przykład: propose 2 tests for registration - one valid, one invalid with missing password.
  • Iteruj małymi krokami
    Zamiast prosić o rozwiązanie całego problemu naraz, rozbij go na mniejsze etapy. Np.:

    • najpierw poproś o analizę błędu, potem o poprawkę, a na końcu o test
    • przy naprawie błędów skupiaj się na jednym naraz
    • przy refaktoryzacji skupiaj się na jednym fragmencie kodu lub na jednej praktyce/wzorcu

Zewnętrzne linki i zasoby

Czym jest MCP?

4 komentarze

  1. Tak jest, wszytko już działa poprawnie takze wielkie dzięki za ekspresowy fix!

    Swoją drogą zauważyłem znaczącą różnicę między odpowiedzią na pierwsze zadanie odnośnie wyszukania błędów zgłoszonych przez jaktestowac.pl na oficjalnej stronie z repo PW na GH.

    W moim przypadku zwrócił odpowiedź, że nie znalazł żadnych issues bo okazało się, że wyszukiwał po autorze “jaktestowac.pl” jak w prompcie a nie “jaktestowac.

    Jak już mu podpowiedziałęm aby wyszukał po poprawnej nazwie autora to z kolei zabrakło w odpowiedzi summary z całkowitą liczbą zgłoszonych, zamkniętych i otwartych issues, o ale pewnie wynika to z faktu że mcp ciągle jest zmieniane i odpowiedzi mogą się różnić 🙂

    Avatar Przemysław Leszczyński
    1. Świetny punkt i dobry wniosek 😉
      Zarówno MCP, jak i modele ulegają zmianie – nawet przełączając się między GPT a Claude mozesz otrzymać bardzo różne wyniki (tu w sumie więcej zależy od modelu niz samego MCP).

      Przy definiowaniu promptów obowiązują te same zasady co przy komunikacji – jesli nie opiszemy dokładnie naszej potrzeby, to możemy dostać bardzo różne wyniki 😀
      A nawet przy bardzo dokładnym opisaniu potrzeb wyniki nie będą w 100% deterministyczne 😉

      Krzysiek Kijas Krzysiek Kijas
  2. Hej,

    nie wiem czy tylko tak jest w moim przypadku (zakładam, że nie 🙂 ), ale nietsety nie widzę możliwości otwarcia nagrania w trybie pełnego ekranu. Czy byłaby możliwośc wrzucenia nagrania z możliwością wybrania full screen mode?

    Avatar Przemysław Leszczyński

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *