Konfiguracja
Ta strona dokumentuje wszystkie opcje konfiguracyjne dla serwera WebdriverIO MCP.
Konfiguracja serwera MCP
Serwer MCP jest konfigurowany poprzez pliki konfiguracyjne Claude Desktop lub Claude Code.
Podstawowa konfiguracja
macOS
Edytuj ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}
Windows
Edytuj %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}
Claude Code
Edytuj .claude/settings.json swojego projektu:
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}
Zmienne środowiskowe
Skonfiguruj połączenie z serwerem Appium i inne ustawienia za pomocą zmiennych środowiskowych.
Połączenie Appium
| Zmienna | Typ | Wartość domyślna | Opis |
|---|---|---|---|
APPIUM_URL | string | 127.0.0.1 | Nazwa hosta serwera Appium |
APPIUM_URL_PORT | number | 4723 | Port serwera Appium |
APPIUM_PATH | string | / | Ścieżka serwera Appium |
Przykład ze zmiennymi środowiskowymi
{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"],
"env": {
"APPIUM_URL": "192.168.1.100",
"APPIUM_URL_PORT": "4724",
"APPIUM_PATH": "/wd/hub"
}
}
}
}
Opcje sesji przeglądarki
Opcje dostępne podczas uruchamiania sesji przeglądarki za pomocą narzędzia start_browser.
headless
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
false
Uruchamia Chrome w trybie headless (bez widocznego okna przeglądarki). Przydatne w środowiskach CI/CD lub gdy nie potrzebujesz widzieć przeglądarki.
windowWidth
- Typ:
number - Obowiązkowe: Nie
- Domyślnie:
1920 - Zakres:
400-3840
Początkowa szerokość okna przeglądarki w pikselach.
windowHeight
- Typ:
number - Obowiązkowe: Nie
- Domyślnie:
1080 - Zakres:
400-2160
Początkowa wysokość okna przeglądarki w pikselach.
navigationUrl
- Typ:
string - Obowiązkowe: Nie
URL, do którego nastąpi nawigacja natychmiast po uruchomieniu przeglądarki. Jest to bardziej efektywne niż wywołanie start_browser, a następnie oddzielnie navigate.
Przykład: Uruchom przeglądarkę i nawiguj w jednym wywołaniu:
Start Chrome and navigate to https://webdriver.io
Opcje sesji mobilnej
Opcje dostępne podczas uruchamiania sesji aplikacji mobilnej za pomocą narzędzia start_app_session.
Opcje platformy
platform
- Typ:
string - Obowiązkowe: Tak
- Wartości:
iOS|Android
Platforma mobilna do automatyzacji.
platformVersion
- Typ:
string - Obowiązkowe: Nie
Wersja systemu operacyjnego urządzenia/symulatora/emulatora (np. 17.0 dla iOS, 14 dla Android).
automationName
- Typ:
string - Obowiązkowe: Nie
- Wartości:
XCUITest(iOS),UiAutomator2|Espresso(Android)
Sterownik automatyzacji do użycia. Domyślnie XCUITest dla iOS i UiAutomator2 dla Androida.
Opcje urządzenia
deviceName
- Typ:
string - Obowiązkowe: Tak
Nazwa urządzenia, symulatora lub emulatora do użycia.
Przykłady:
- Symulator iOS:
iPhone 15 Pro,iPad Air (5th generation) - Emulator Android:
Pixel 7,Nexus 5X - Rzeczywiste urządzenie: Nazwa urządzenia wyświetlana w systemie
udid
- Typ:
string - Obowiązkowe: Nie (Wymagane dla rzeczywistych urządzeń iOS)
Unikalny identyfikator urządzenia. Wymagany dla rzeczywistych urządzeń iOS (40-znakowy identyfikator) i zalecany dla rzeczywistych urządzeń Android.
Znajdowanie UDID:
- iOS: Podłącz urządzenie, otwórz Finder/iTunes, kliknij na urządzenie → Numer seryjny (kliknij, aby ujawnić UDID)
- Android: Uruchom
adb devicesw terminalu
Opcje aplikacji
appPath
- Typ:
string - Obowiązkowe: Nie*
Ścieżka do pliku aplikacji do zainstalowania i uruchomienia.
Obsługiwane formaty:
- Symulator iOS: katalog
.app - Rzeczywiste urządzenie iOS: plik
.ipa - Android: plik
.apk
*Albo appPath musi być dostarczone, albo noReset: true, aby połączyć się z już uruchomioną aplikacją.
appWaitActivity
- Typ:
string - Obowiązkowe: Nie (tylko Android)
Aktywność, na którą należy poczekać przy uruchomieniu aplikacji. Jeśli nie określono, używana jest główna/startowa aktywność aplikacji.
Przykład: com.example.app.MainActivity
Opcje stanu sesji
noReset
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
false
Zachowuje stan aplikacji między sesjami. Gdy true:
- Dane aplikacji są zachowywane (stan logowania, preferencje itp.)
- Sesja zostanie odłączona zamiast zamknięta (aplikacja pozostanie uruchomiona)
- Przydatne do testowania ścieżek użytkownika w wielu sesjach
- Można używać bez
appPathdo połączenia z już uruchomioną aplikacją
fullReset
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
true
Całkowicie resetuje aplikację przed sesją. Gdy true:
- iOS: Odinstalowuje i ponownie instaluje aplikację
- Android: Czyści dane i pamięć podręczną aplikacji
- Przydatne do rozpoczynania z czystym stanem
Ustaw fullReset: false z noReset: true, aby całkowicie zachować stan aplikacji.
Timeout sesji
newCommandTimeout
- Typ:
number - Obowiązkowe: Nie
- Domyślnie:
60
Jak długo (w sekundach) Appium będzie czekać na nową komendę, zanim uzna, że klient zakończył działanie i zakończy sesję. Zwiększ tę wartość dla dłuższych sesji debugowania.
Przykłady:
60- Domyślnie, odpowiednie dla większości automatyzacji300- 5 minut, do debugowania lub wolniejszych operacji600- 10 minut, do bardzo długo działających testów
Opcje automatycznej obsługi
autoGrantPermissions
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
true
Automatycznie przyznaje uprawnienia aplikacji podczas instalacji/uruchomienia. Gdy true:
- Uprawnienia do kamery, mikrofonu, lokalizacji itp. są automatycznie przyznawane
- Nie jest potrzebna ręczna obsługa dialogów uprawnień
- Usprawnia automatyzację poprzez unikanie okien dialogowych uprawnień
Ta opcja dotyczy głównie Androida. Uprawnienia iOS muszą być obsługiwane inaczej ze względu na ograniczenia systemowe.
autoAcceptAlerts
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
true
Automatycznie akceptuje alerty systemowe (dialogi) pojawiające się podczas automatyzacji.
Przykłady automatycznie akceptowanych alertów:
- "Zezwolić na powiadomienia?"
- "Aplikacja chciałaby uzyskać dostęp do Twojej lokalizacji"
- "Zezwolić aplikacji na dostęp do zdjęć?"
autoDismissAlerts
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
false
Odrzuca (anuluje) alerty systemowe zamiast je akceptować. Ma pierwszeństwo przed autoAcceptAlerts, gdy ustawione na true.
Nadpisanie serwera Appium
Możesz nadpisać połączenie z serwerem Appium dla konkretnej sesji:
appiumHost
- Typ:
string - Obowiązkowe: Nie
Nazwa hosta serwera Appium. Nadpisuje zmienną środowiskową APPIUM_URL.
appiumPort
- Typ:
number - Obowiązkowe: Nie
Port serwera Appium. Nadpisuje zmienną środowiskową APPIUM_URL_PORT.
appiumPath
- Typ:
string - Obowiązkowe: Nie
Ścieżka serwera Appium. Nadpisuje zmienną środowiskową APPIUM_PATH.
Opcje wykrywania elementów
Opcje dla narzędzia get_visible_elements.
elementType
- Typ:
string - Obowiązkowe: Nie
- Domyślnie:
interactable - Wartości:
interactable|visual|all
Typ elementów do zwrócenia:
interactable: Przyciski, linki, pola wejściowe i inne elementy klikalnevisual: Obrazy, SVG i elementy wizualneall: Zarówno elementy interaktywne, jak i wizualne
inViewportOnly
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
true
Zwraca tylko elementy, które są widoczne w bieżącym obszarze widocznym. Gdy false, zwraca wszystkie elementy w hierarchii widoku (przydatne do znajdowania elementów poza ekranem).
includeContainers
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
false
Dołącza elementy kontenera/layoutu w wynikach. Gdy true:
Dołączane kontenery Android:
ViewGroup,FrameLayout,LinearLayoutRelativeLayout,ConstraintLayoutScrollView,RecyclerView
Dołączane kontenery iOS:
View,StackView,CollectionViewScrollView,TableView
Przydatne do debugowania problemów z layoutem lub zrozumienia hierarchii widoku.
includeBounds
- Typ:
boolean - Obowiązkowe: Nie
- Domyślnie:
false
Dołącza granice/współrzędne elementów (x, y, szerokość, wysokość) w odpowiedzi. Ustaw na true dla:
- Interakcji opartych na współrzędnych
- Debugowania layoutu
- Pozycjonowania elementów wizualnych
Opcje paginacji
Dla dużych stron z wieloma elementami, użyj paginacji, aby zmniejszyć zużycie tokenów:
limit
- Typ:
number - Obowiązkowe: Nie
- Domyślnie:
0(nieograniczony)
Maksymalna liczba elementów do zwrócenia.
offset
- Typ:
number - Obowiązkowe: Nie
- Domyślnie:
0
Liczba elementów do pominięcia przed zwróceniem wyników.
Przykład: Pobierz elementy 21-40:
Get visible elements with limit 20 and offset 20