Zum Hauptinhalt springen

Werkzeuge

Die folgenden Werkzeuge stehen über den WebdriverIO MCP-Server zur Verfügung. Diese Werkzeuge ermöglichen es KI-Assistenten, Browser und mobile Anwendungen zu automatisieren.

Session-Management​

start_browser​

Startet eine Chrome-Browser-Sitzung.

Parameter​

ParameterTypErforderlichStandardBeschreibung
headlessbooleanNeinfalseChrome im Headless-Modus ausführen
windowWidthnumberNein1920Browserbreite (400-3840)
windowHeightnumberNein1080Browserhöhe (400-2160)
navigationUrlstringNein-URL, zu der nach dem Start des Browsers navigiert werden soll

Beispiel​

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

Unterstützung​

  • Desktop-Browser

start_app_session​

Startet eine mobile App-Sitzung auf iOS oder Android über Appium.

Parameter​

ParameterTypErforderlichStandardBeschreibung
platformstringJa-Zu automatisierende Plattform: iOS oder Android
deviceNamestringJa-Name des Geräts oder Simulators/Emulators
appPathstringNein*-Pfad zur App-Datei (.app, .ipa oder .apk)
platformVersionstringNein-Betriebssystemversion (z.B. 17.0, 14)
automationNamestringNeinAutoXCUITest (iOS), UiAutomator2 oder Espresso (Android)
udidstringNein-Eindeutige Gerätekennung (erforderlich für echte iOS-Geräte)
noResetbooleanNeinfalseApp-Status zwischen Sitzungen beibehalten
fullResetbooleanNeintrueApp vor der Sitzung deinstallieren und neu installieren
autoGrantPermissionsbooleanNeintrueApp-Berechtigungen automatisch gewähren
autoAcceptAlertsbooleanNeintrueSystembenachrichtigungen automatisch akzeptieren
autoDismissAlertsbooleanNeinfalseBenachrichtigungen ablehnen (statt akzeptieren)
appWaitActivitystringNein-Activity, auf die beim Start gewartet werden soll (nur Android)
newCommandTimeoutnumberNein60Sekunden bis zum Timeout der Sitzung bei Inaktivität
appiumHoststringNein127.0.0.1Appium-Server-Hostname
appiumPortnumberNein4723Appium-Server-Port
appiumPathstringNein/Appium-Server-Pfad

*Entweder muss appPath angegeben werden oder noReset: true, um eine Verbindung zu einer bereits laufenden App herzustellen.

Beispiel​

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

Unterstützung​

  • iOS-Simulatoren
  • Echte iOS-Geräte
  • Android-Emulatoren
  • Echte Android-Geräte

close_session​

Schließt die aktuelle Browser- oder App-Sitzung.

Parameter​

ParameterTypErforderlichStandardBeschreibung
detachbooleanNeinfalseVon der Sitzung trennen, statt sie zu schließen (Browser/App bleibt geöffnet)

Hinweise​

Sitzungen mit noReset: true oder ohne appPath werden beim Schließen automatisch getrennt, um den Status beizubehalten.

Unterstützung​

  • Desktop-Browser
  • Mobile Apps

Navigiert zu einer URL.

Parameter​

ParameterTypErforderlichBeschreibung
urlstringJaDie URL, zu der navigiert werden soll

Beispiel​

Navigate to https://webdriver.io

Unterstützung​

  • Desktop-Browser

Element-Interaktion​

click_element​

Klickt auf ein Element, das durch einen Selektor identifiziert wird.

Parameter​

ParameterTypErforderlichStandardBeschreibung
selectorstringJa-CSS-Selektor, XPath oder mobiler Selektor
scrollToViewbooleanNeintrueElement vor dem Klicken in den sichtbaren Bereich scrollen
timeoutnumberNein3000Maximale Wartezeit für das Element (ms)

Hinweise​

  • Unterstützt WebdriverIO-Textselektoren: button=Exakter Text oder a*=Enthaltener Text
  • Verwendet Zentrierung für die Scrollposition

Beispiel​

Click the element with selector "#submit-button"

Unterstützung​

  • Desktop-Browser
  • Mobile Native Apps

set_value​

Gibt Text in ein Eingabefeld ein.

Parameter​

ParameterTypErforderlichStandardBeschreibung
selectorstringJa-Selektor für das Eingabeelement
valuestringJa-Einzugebender Text
scrollToViewbooleanNeintrueElement vor der Eingabe in den sichtbaren Bereich scrollen
timeoutnumberNein3000Maximale Wartezeit für das Element (ms)

Hinweise​

Löscht den vorhandenen Wert, bevor neuer Text eingegeben wird.

Beispiel​

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

Unterstützung​

  • Desktop-Browser
  • Mobile Native Apps

Seitenanalyse​

get_visible_elements​

Ermittelt sichtbare und interaktive Elemente auf der aktuellen Seite oder dem Bildschirm. Dies ist das primäre Werkzeug, um zu erkennen, welche Elemente für Interaktionen verfügbar sind.

Parameter​

ParameterTypErforderlichStandardBeschreibung
elementTypestringNeininteractableElementtyp: interactable (Buttons/Links/Inputs), visual (Bilder/SVGs) oder all
inViewportOnlybooleanNeintrueNur Elemente zurückgeben, die im Viewport sichtbar sind
includeContainersbooleanNeinfalseLayout-Container einschließen (ViewGroup, ScrollView, etc.)
includeBoundsbooleanNeinfalseElementkoordinaten einschließen (x, y, Breite, Höhe)
limitnumberNein0Maximale Anzahl zurückzugebender Elemente (0 = unbegrenzt)
offsetnumberNein0Anzahl zu überspringender Elemente (für Paginierung)

Rückgabe​

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

Web-Elemente enthalten: tagName, type, id, className, textContent, value, placeholder, href, ariaLabel, role, cssSelector, isInViewport

Mobile Elemente enthalten: Mehrere Locator-Strategien (Accessibility ID, Resource ID, XPath, UiAutomator/Predicates), Elementtyp, Text und optional Begrenzungen

Hinweise​

  • Web: Verwendet ein optimiertes Browserscript für schnelle Elementerkennung
  • Mobile: Verwendet effiziente XML-Seitenquellenanalyse (2 HTTP-Aufrufe vs. 600+ für Elementabfragen)
  • Verwenden Sie Paginierung (limit und offset) für große Seiten, um den Token-Verbrauch zu reduzieren

Beispiel​

Get all visible elements on the page with their coordinates

Unterstützung​

  • Desktop-Browser
  • Mobile Apps

get_accessibility​

Ruft den Accessibility-Baum der aktuellen Seite mit semantischen Informationen zu Rollen, Namen und Status ab.

Parameter​

ParameterTypErforderlichStandardBeschreibung
limitnumberNein100Maximale Anzahl zurückzugebender Knoten (0 = unbegrenzt)
offsetnumberNein0Anzahl zu überspringender Knoten (für Paginierung)
rolesstring[]NeinAlleFilter für bestimmte Rollen (z.B. ["button", "link", "textbox"])
namedOnlybooleanNeintrueNur Knoten mit Namen/Label zurückgeben

Rückgabe​

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

Hinweise​

  • Nur für Browser. Für mobile Apps verwenden Sie stattdessen get_visible_elements
  • Nützlich, wenn get_visible_elements nicht die erwarteten Elemente zurückgibt
  • namedOnly: true filtert anonyme Container heraus und reduziert Störsignale

Unterstützung​

  • Desktop-Browser

Screenshots​

take_screenshot​

Macht einen Screenshot des aktuellen Viewports.

Parameter​

ParameterTypErforderlichBeschreibung
outputPathstringNeinPfad zum Speichern der Screenshot-Datei. Wenn nicht angegeben, werden Base64-Daten zurückgegeben

Rückgabe​

Base64-codierte Bilddaten (PNG oder JPEG) mit Größeninformationen.

Hinweise​

Screenshots werden automatisch optimiert:

  • Maximale Dimension: 2000px (wird bei größeren Bildern herunterskaliert)
  • Maximale Dateigröße: 1MB
  • Format: PNG mit maximaler Komprimierung oder JPEG, wenn nötig, um das Größenlimit einzuhalten

Unterstützung​

  • Desktop-Browser
  • Mobile Apps

Scrollen​

scroll​

Scrollt die Seite um eine bestimmte Anzahl von Pixeln nach oben oder unten.

Parameter​

ParameterTypErforderlichStandardBeschreibung
directionstringJa-Scrollrichtung: up oder down
pixelsnumberNein500Anzahl der zu scrollenden Pixel

Hinweise​

Nur für Browser. Verwenden Sie für mobiles Scrollen stattdessen das swipe-Tool.

Unterstützung​

  • Desktop-Browser

get_cookies​

Ruft Cookies aus der aktuellen Sitzung ab.

Parameter​

ParameterTypErforderlichBeschreibung
namestringNeinBestimmter Cookie-Name, der abgerufen werden soll (weglassen für alle Cookies)

Rückgabe​

Cookie-Objekte mit name, value, domain, path, expiry, secure und httpOnly-Eigenschaften.

Unterstützung​

  • Desktop-Browser

Setzt einen Cookie in der aktuellen Sitzung.

Parameter​

ParameterTypErforderlichStandardBeschreibung
namestringJa-Cookie-Name
valuestringJa-Cookie-Wert
domainstringNeinAktuelleCookie-Domain
pathstringNein/Cookie-Pfad
expirynumberNein-Ablauf als Unix-Zeitstempel (Sekunden)
securebooleanNein-Secure-Flag
httpOnlybooleanNein-HttpOnly-Flag
sameSitestringNein-SameSite-Attribut: strict, lax oder none

Unterstützung​

  • Desktop-Browser

delete_cookies​

Löscht Cookies aus der aktuellen Sitzung.

Parameter​

ParameterTypErforderlichBeschreibung
namestringNeinBestimmter Cookie-Name, der gelöscht werden soll (weglassen, um alle zu löschen)

Unterstützung​

  • Desktop-Browser

Touch-Gesten (Mobil)​

tap_element​

Tippt auf ein Element oder Bildschirmkoordinaten.

Parameter​

ParameterTypErforderlichBeschreibung
selectorstringNein*Selektor für das Element, auf das getippt werden soll
xnumberNein*X-Koordinate für den Tipp
ynumberNein*Y-Koordinate für den Tipp

*Entweder selector oder sowohl x als auch y sind erforderlich.

Unterstützung​

  • Mobile Apps

swipe​

Führt eine Wischgeste in die angegebene Richtung aus.

Parameter​

ParameterTypErforderlichStandardBeschreibung
directionstringJa-Wischrichtung: up, down, left, right
durationnumberNein500Wischdauer in Millisekunden (100-5000)
percentnumberNein0,5/0,95Prozentsatz des Bildschirms, der gewischt werden soll (0-1)

Hinweise​

  • Standard-Prozentsatz: 0,5 für vertikales Wischen, 0,95 für horizontales Wischen
  • Richtung gibt die Inhaltsbewegung an: "Wischen nach oben" scrollt den Inhalt nach oben

Beispiel​

Swipe up to scroll down the screen

Unterstützung​

  • Mobile Apps

drag_and_drop​

Zieht ein Element zu einem anderen Element oder zu Koordinaten.

Parameter​

ParameterTypErforderlichBeschreibung
sourceSelectorstringJaQuell-Element-Selektor zum Ziehen
targetSelectorstringNein*Ziel-Element-Selektor zum Ablegen
xnumberNein*Ziel-X-Offset (wenn kein targetSelector)
ynumberNein*Ziel-Y-Offset (wenn kein targetSelector)
durationnumberNeinStandard

*Entweder targetSelector oder sowohl x als auch y sind erforderlich.

Unterstützung​

  • Mobile Apps

App-Lebenszyklus (Mobil)​

get_app_state​

Ruft den aktuellen Status einer App ab.

Parameter​

ParameterTypErforderlichBeschreibung
bundleIdstringJaApp-Kennung (Bundle-ID für iOS, Paketname für Android)

Rückgabe​

App-Status: not installed, not running, running in background (suspended), running in background oder running in foreground.

Unterstützung​

  • Mobile Apps

Kontextwechsel (Hybrid-Apps)​

get_contexts​

Listet alle verfügbaren Kontexte auf (nativ und Webviews).

Parameter​

Keine

Rückgabe​

Array von Kontextnamen (z.B. ["NATIVE_APP", "WEBVIEW_com.example.app"]).

Unterstützung​

  • Mobile Hybrid-Apps

get_current_context​

Ruft den aktuell aktiven Kontext ab.

Parameter​

Keine

Rückgabe​

Aktueller Kontextname (z.B. NATIVE_APP oder WEBVIEW_*).

Unterstützung​

  • Mobile Hybrid-Apps

switch_context​

Wechselt zwischen nativen und Webview-Kontexten.

Parameter​

ParameterTypErforderlichBeschreibung
contextstringJaKontextname oder Index (1-basiert) aus get_contexts

Beispiel​

Switch to the WEBVIEW_com.example.app context

Unterstützung​

  • Mobile Hybrid-Apps

Gerätesteuerung (Mobil)​

rotate_device​

Dreht das Gerät in eine bestimmte Ausrichtung.

Parameter​

ParameterTypErforderlichBeschreibung
orientationstringJaPORTRAIT oder LANDSCAPE

Unterstützung​

  • Mobile Apps

hide_keyboard​

Blendet die Bildschirmtastatur aus.

Parameter​

Keine

Unterstützung​

  • Mobile Apps

get_geolocation​

Ruft die aktuellen GPS-Koordinaten ab.

Parameter​

Keine

Rückgabe​

Objekt mit latitude, longitude und altitude.

Unterstützung​

  • Mobile Apps

set_geolocation​

Setzt die GPS-Koordinaten des Geräts.

Parameter​

ParameterTypErforderlichBeschreibung
latitudenumberJaBreitengrad (-90 bis 90)
longitudenumberJaLängengrad (-180 bis 180)
altitudenumberNeinHöhe in Metern

Beispiel​

Set geolocation to San Francisco (37.7749, -122.4194)

Unterstützung​

  • Mobile Apps

Skriptausführung​

execute_script​

Führt JavaScript im Browser oder mobile Befehle über Appium aus.

Parameter​

ParameterTypErforderlichBeschreibung
scriptstringJaJavaScript-Code (Browser) oder mobiler Befehl (z.B. mobile: pressKey)
argsarrayNeinArgumente für das Skript

Browser-Beispiele​

// 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"] })

Mobile (Appium) Beispiele​

// 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"] }] })

Häufige Android-Keycodes​

TasteCode
BACK4
HOME3
ENTER66
MENU82
SEARCH84

Weitere Mobile-Befehle​

Eine vollständige Liste der verfügbaren Appium Mobile-Befehle finden Sie unter:

Unterstützung​

  • Desktop-Browser
  • Mobile Apps (über Appium Mobile-Befehle)

Welcome! How can I help?

WebdriverIO AI Copilot