Przejdź do głównej treści

Narzędzia

Następujące narzędzia są dostępne za pośrednictwem serwera WebdriverIO MCP. Narzędzia te umożliwiają asystentom AI automatyzację przeglądarek i aplikacji mobilnych.

Zarządzanie sesją​

start_browser​

Uruchamia sesję przeglądarki Chrome.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
headlessbooleanNiefalseUruchamia Chrome w trybie headless
windowWidthnumberNie1920Szerokość okna przeglądarki (400-3840)
windowHeightnumberNie1080Wysokość okna przeglądarki (400-2160)
navigationUrlstringNie-URL, do którego nastąpi przekierowanie po uruchomieniu przeglądarki

Przykład​

Start a browser with 1920x1080 resolution and navigate to webdriver.io

Wsparcie​

  • Przeglądarki desktopowe

start_app_session​

Uruchamia sesję aplikacji mobilnej na iOS lub Android za pośrednictwem Appium.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
platformstringTak-Platforma do automatyzacji: iOS lub Android
deviceNamestringTak-Nazwa urządzenia lub symulatora/emulatora
appPathstringNie*-Ścieżka do pliku aplikacji (.app, .ipa lub .apk)
platformVersionstringNie-Wersja systemu operacyjnego (np. 17.0, 14)
automationNamestringNieAutoXCUITest (iOS), UiAutomator2 lub Espresso (Android)
udidstringNie-Unikalny identyfikator urządzenia (wymagany dla rzeczywistych urządzeń iOS)
noResetbooleanNiefalseZachowuje stan aplikacji między sesjami
fullResetbooleanNietrueOdinstalowuje i ponownie instaluje aplikację przed sesją
autoGrantPermissionsbooleanNietrueAutomatycznie przyznaje uprawnienia aplikacji
autoAcceptAlertsbooleanNietrueAutomatycznie akceptuje alerty systemowe
autoDismissAlertsbooleanNiefalseOdrzuca (zamiast akceptować) alerty
appWaitActivitystringNie-Aktywność, na którą należy czekać przy uruchomieniu (tylko Android)
newCommandTimeoutnumberNie60Sekundy przed zakończeniem sesji z powodu braku aktywności
appiumHoststringNie127.0.0.1Nazwa hosta serwera Appium
appiumPortnumberNie4723Port serwera Appium
appiumPathstringNie/Ścieżka serwera Appium

*Albo należy podać appPath, albo ustawić noReset: true, aby połączyć się z już uruchomioną aplikacją.

Przykład​

Start an iOS app session on iPhone 15 simulator with my app at /path/to/app.app

Wsparcie​

  • Symulatory iOS
  • Rzeczywiste urządzenia iOS
  • Emulatory Android
  • Rzeczywiste urządzenia Android

close_session​

Zamyka bieżącą sesję przeglądarki lub aplikacji.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
detachbooleanNiefalseOdłącza od sesji zamiast zamykać (pozostawia przeglądarkę/aplikację uruchomioną)

Uwagi​

Sesje z noReset: true lub bez appPath automatycznie odłączają się przy zamknięciu, aby zachować stan.

Wsparcie​

  • Przeglądarki desktopowe
  • Aplikacje mobilne

Nawigacja​

Przechodzi do określonego URL-a.

Parametry​

ParametrTypObowiązkowyOpis
urlstringTakURL, do którego nastąpi przekierowanie

Przykład​

Navigate to https://webdriver.io

Wsparcie​

  • Przeglądarki desktopowe

Interakcja z elementami​

click_element​

Klika element zidentyfikowany przez selektor.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
selectorstringTak-Selektor CSS, XPath lub selektor mobilny
scrollToViewbooleanNietruePrzewija widok do elementu przed kliknięciem
timeoutnumberNie3000Maksymalny czas oczekiwania na element (ms)

Uwagi​

  • Obsługuje selektory tekstowe WebdriverIO: button=Dokładny tekst lub a*=Zawiera tekst
  • Używa wyrównania środkowego do pozycjonowania przewijania

Przykład​

Click the element with selector "#submit-button"

Wsparcie​

  • Przeglądarki desktopowe
  • Natywne aplikacje mobilne

set_value​

Wpisuje tekst w pole wprowadzania.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
selectorstringTak-Selektor dla elementu wprowadzania
valuestringTak-Tekst do wpisania
scrollToViewbooleanNietruePrzewija widok do elementu przed wpisaniem
timeoutnumberNie3000Maksymalny czas oczekiwania na element (ms)

Uwagi​

Czyści istniejącą wartość przed wpisaniem nowego tekstu.

Przykład​

Set the value "john@example.com" in the element with selector "#email"

Wsparcie​

  • Przeglądarki desktopowe
  • Natywne aplikacje mobilne

Analiza strony​

get_visible_elements​

Pobiera widoczne i interaktywne elementy na bieżącej stronie lub ekranie. Jest to podstawowe narzędzie do odkrywania, jakie elementy są dostępne do interakcji.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
elementTypestringNieinteractableTyp elementów: interactable (przyciski/linki/pola), visual (obrazy/SVG) lub all
inViewportOnlybooleanNietrueZwraca tylko elementy widoczne w obszarze widocznym
includeContainersbooleanNiefalseUwzględnia kontenery układu (ViewGroup, ScrollView, itp.)
includeBoundsbooleanNiefalseUwzględnia współrzędne elementu (x, y, szerokość, wysokość)
limitnumberNie0Maksymalna liczba elementów do zwrócenia (0 = bez limitu)
offsetnumberNie0Liczba elementów do pominięcia (do paginacji)

Zwraca​

{
"total": 42,
"showing": 20,
"hasMore": true,
"elements": [...]
}

Elementy webowe zawierają: tagName, type, id, className, textContent, value, placeholder, href, ariaLabel, role, cssSelector, isInViewport

Elementy mobilne zawierają: Wiele strategii lokalizacji (accessibility ID, resource ID, XPath, UiAutomator/predicates), typ elementu, tekst i opcjonalnie granice

Uwagi​

  • Web: Używa zoptymalizowanego skryptu przeglądarki do szybkiego wykrywania elementów
  • Mobile: Używa wydajnej analizy źródła strony XML (2 wywołania HTTP zamiast 600+ dla zapytań o elementy)
  • Użyj paginacji (limit i offset) dla dużych stron, aby zmniejszyć zużycie tokenów

Przykład​

Get all visible elements on the page with their coordinates

Wsparcie​

  • Przeglądarki desktopowe
  • Aplikacje mobilne

get_accessibility​

Pobiera drzewo dostępności bieżącej strony z semantycznymi informacjami o rolach, nazwach i stanach.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
limitnumberNie100Maksymalna liczba węzłów do zwrócenia (0 = bez limitu)
offsetnumberNie0Liczba węzłów do pominięcia (do paginacji)
rolesstring[]NieWszystkieFiltruj do określonych ról (np. ["button", "link", "textbox"])
namedOnlybooleanNietrueZwróć tylko węzły z nazwą/etykietą

Zwraca​

{
"total": 85,
"showing": 100,
"hasMore": false,
"nodes": [
{ "role": "button", "name": "Submit" },
{ "role": "link", "name": "Home" }
]
}

Uwagi​

  • Tylko dla przeglądarek. Dla aplikacji mobilnych użyj get_visible_elements
  • Przydatne, gdy get_visible_elements nie zwraca oczekiwanych elementów
  • namedOnly: true filtruje anonimowe kontenery i redukuje szum

Wsparcie​

  • Przeglądarki desktopowe

Zrzuty ekranu​

take_screenshot​

Wykonuje zrzut ekranu bieżącego widoku.

Parametry​

ParametrTypObowiązkowyOpis
outputPathstringNieŚcieżka do zapisania pliku zrzutu ekranu. Jeśli pominięto, zwraca dane base64

Zwraca​

Dane obrazu zakodowane base64 (PNG lub JPEG) z informacjami o rozmiarze.

Uwagi​

Zrzuty ekranu są automatycznie optymalizowane:

  • Maksymalny wymiar: 2000px (skalowany w dół, jeśli większy)
  • Maksymalny rozmiar pliku: 1MB
  • Format: PNG z maksymalną kompresją lub JPEG, jeśli potrzebny do osiągnięcia limitu rozmiaru

Wsparcie​

  • Przeglądarki desktopowe
  • Aplikacje mobilne

Przewijanie​

scroll​

Przewija stronę w górę lub w dół o określoną liczbę pikseli.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
directionstringTak-Kierunek przewijania: up lub down
pixelsnumberNie500Liczba pikseli do przewinięcia

Uwagi​

Tylko dla przeglądarek. Do przewijania w aplikacjach mobilnych użyj narzędzia swipe.

Wsparcie​

  • Przeglądarki desktopowe

Zarządzanie ciasteczkami​

get_cookies​

Pobiera ciasteczka z bieżącej sesji.

Parametry​

ParametrTypObowiązkowyOpis
namestringNieOkreślona nazwa ciasteczka do pobrania (pomiń, aby pobrać wszystkie ciasteczka)

Zwraca​

Obiekty ciasteczek z właściwościami name, value, domain, path, expiry, secure i httpOnly.

Wsparcie​

  • Przeglądarki desktopowe

Ustawia ciasteczko w bieżącej sesji.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
namestringTak-Nazwa ciasteczka
valuestringTak-Wartość ciasteczka
domainstringNieBieżącyDomena ciasteczka
pathstringNie/Ścieżka ciasteczka
expirynumberNie-Czas wygaśnięcia jako znacznik czasu Unix (sekundy)
securebooleanNie-Flaga Secure
httpOnlybooleanNie-Flaga HttpOnly
sameSitestringNie-Atrybut SameSite: strict, lax lub none

Wsparcie​

  • Przeglądarki desktopowe

delete_cookies​

Usuwa ciasteczka z bieżącej sesji.

Parametry​

ParametrTypObowiązkowyOpis
namestringNieOkreślona nazwa ciasteczka do usunięcia (pomiń, aby usunąć wszystkie)

Wsparcie​

  • Przeglądarki desktopowe

Gesty dotykowe (Mobile)​

tap_element​

Dotyka element lub współrzędne ekranu.

Parametry​

ParametrTypObowiązkowyOpis
selectorstringNie*Selektor elementu do dotknięcia
xnumberNie*Współrzędna X do dotknięcia
ynumberNie*Współrzędna Y do dotknięcia

*Albo selector, albo zarówno x jak i y są wymagane.

Wsparcie​

  • Aplikacje mobilne

swipe​

Wykonuje gest przeciągnięcia w określonym kierunku.

Parametry​

ParametrTypObowiązkowyDomyślnyOpis
directionstringTak-Kierunek przeciągnięcia: up, down, left, right
durationnumberNie500Czas trwania przeciągnięcia w milisekundach (100-5000)
percentnumberNie0.5/0.95Procent ekranu do przeciągnięcia (0-1)

Uwagi​

  • Domyślny procent: 0.5 dla przeciągnięć pionowych, 0.95 dla poziomych
  • Kierunek wskazuje ruch zawartości: "przeciągnij w górę" przewija zawartość w górę

Przykład​

Swipe up to scroll down the screen

Wsparcie​

  • Aplikacje mobilne

drag_and_drop​

Przeciąga element do innego elementu lub współrzędnych.

Parametry​

ParametrTypObowiązkowyOpis
sourceSelectorstringTakSelektor elementu źródłowego do przeciągnięcia
targetSelectorstringNie*Selektor elementu docelowego do upuszczenia
xnumberNie*Przesunięcie docelowe X (jeśli brak targetSelector)
ynumberNie*Przesunięcie docelowe Y (jeśli brak targetSelector)
durationnumberNieDomyślny

*Albo targetSelector, albo zarówno x jak i y są wymagane.

Wsparcie​

  • Aplikacje mobilne

Cykl życia aplikacji (Mobile)​

get_app_state​

Pobiera aktualny stan aplikacji.

Parametry​

ParametrTypObowiązkowyOpis
bundleIdstringTakIdentyfikator aplikacji (bundle ID dla iOS, nazwa pakietu dla Android)

Zwraca​

Stan aplikacji: not installed, not running, running in background (suspended), running in background lub running in foreground.

Wsparcie​

  • Aplikacje mobilne

Przełączanie kontekstu (aplikacje hybrydowe)​

get_contexts​

Wyświetla listę wszystkich dostępnych kontekstów (natywnych i webview).

Parametry​

Brak

Zwraca​

Tablica nazw kontekstów (np. ["NATIVE_APP", "WEBVIEW_com.example.app"]).

Wsparcie​

  • Aplikacje mobilne hybrydowe

get_current_context​

Pobiera aktualnie aktywny kontekst.

Parametry​

Brak

Zwraca​

Nazwa bieżącego kontekstu (np. NATIVE_APP lub WEBVIEW_*).

Wsparcie​

  • Aplikacje mobilne hybrydowe

switch_context​

Przełącza między kontekstami natywnym i webview.

Parametry​

ParametrTypObowiązkowyOpis
contextstringTakNazwa kontekstu lub indeks (od 1) z get_contexts

Przykład​

Switch to the WEBVIEW_com.example.app context

Wsparcie​

  • Aplikacje mobilne hybrydowe

Kontrola urządzenia (Mobile)​

rotate_device​

Obraca urządzenie do określonej orientacji.

Parametry​

ParametrTypObowiązkowyOpis
orientationstringTakPORTRAIT lub LANDSCAPE

Wsparcie​

  • Aplikacje mobilne

hide_keyboard​

Ukrywa klawiaturę ekranową.

Parametry​

Brak

Wsparcie​

  • Aplikacje mobilne

get_geolocation​

Pobiera aktualne współrzędne GPS.

Parametry​

Brak

Zwraca​

Obiekt z latitude, longitude i altitude.

Wsparcie​

  • Aplikacje mobilne

set_geolocation​

Ustawia współrzędne GPS urządzenia.

Parametry​

ParametrTypObowiązkowyOpis
latitudenumberTakWspółrzędna szerokości geograficznej (-90 do 90)
longitudenumberTakWspółrzędna długości geograficznej (-180 do 180)
altitudenumberNieWysokość w metrach

Przykład​

Set geolocation to San Francisco (37.7749, -122.4194)

Wsparcie​

  • Aplikacje mobilne

Wykonywanie skryptów​

execute_script​

Wykonuje JavaScript w przeglądarce lub polecenia mobilne za pośrednictwem Appium.

Parametry​

ParametrTypObowiązkowyOpis
scriptstringTakKod JavaScript (przeglądarka) lub polecenie mobilne (np. mobile: pressKey)
argsarrayNieArgumenty dla skryptu

Przykłady w przeglądarce​

// Get page title
execute_script({ script: "return document.title" })

// Get scroll position
execute_script({ script: "return window.scrollY" })

// Click element by selector
execute_script({ script: "arguments[0].click()", args: ["#myButton"] })

Przykłady mobilne (Appium)​

// Press back key (Android)
execute_script({ script: "mobile: pressKey", args: [{ keycode: 4 }] })

// Activate app
execute_script({ script: "mobile: activateApp", args: [{ appId: "com.example" }] })

// Terminate app
execute_script({ script: "mobile: terminateApp", args: [{ appId: "com.example" }] })

// Deep link
execute_script({ script: "mobile: deepLink", args: [{ url: "myapp://screen", package: "com.example" }] })

// Shell command (Android)
execute_script({ script: "mobile: shell", args: [{ command: "dumpsys", args: ["battery"] }] })

Popularne kody klawiszy Androida​

KlawiszKod
BACK4
HOME3
ENTER66
MENU82
SEARCH84

Więcej poleceń mobilnych​

Aby uzyskać pełną listę dostępnych poleceń mobilnych Appium, zobacz:

Wsparcie​

  • Przeglądarki desktopowe
  • Aplikacje mobilne (za pośrednictwem poleceń mobilnych Appium)

Welcome! How can I help?

WebdriverIO AI Copilot