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