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