Перейти до основного вмісту

Інструменти

Наступні інструменти доступні через сервер WebdriverIO MCP. Ці інструменти дозволяють ШІ-асистентам автоматизувати браузери та мобільні додатки.

Session Management

start_browser

Запускає сесію браузера Chrome.

Parameters

ParameterTypeMandatoryDefaultDescription
headlessbooleanNofalseЗапустити Chrome у режимі без інтерфейсу
windowWidthnumberNo1920Ширина вікна браузера (400-3840)
windowHeightnumberNo1080Висота вікна браузера (400-2160)
navigationUrlstringNo-URL для переходу після запуску браузера

Example

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

Support

  • Desktop Browsers

start_app_session

Запускає сесію мобільного додатку на iOS або Android через Appium.

Parameters

ParameterTypeMandatoryDefaultDescription
platformstringYes-Платформа для автоматизації: iOS або Android
deviceNamestringYes-Назва пристрою або симулятора/емулятора
appPathstringNo*-Шлях до файлу додатку (.app, .ipa, або .apk)
platformVersionstringNo-Версія ОС (наприклад, 17.0, 14)
automationNamestringNoAutoXCUITest (iOS), UiAutomator2 або Espresso (Android)
udidstringNo-Унікальний ідентифікатор пристрою (обов'язковий для реальних пристроїв iOS)
noResetbooleanNofalseЗберігати стан додатку між сесіями
fullResetbooleanNotrueВидаляти і перевстановлювати додаток перед сесією
autoGrantPermissionsbooleanNotrueАвтоматично надавати дозволи додатку
autoAcceptAlertsbooleanNotrueАвтоматично приймати системні сповіщення
autoDismissAlertsbooleanNofalseВідхиляти (замість приймати) сповіщення
appWaitActivitystringNo-Активність, яку очікувати при запуску (тільки Android)
newCommandTimeoutnumberNo60Секунди до закінчення сесії через неактивність
appiumHoststringNo127.0.0.1Ім'я хосту Appium сервера
appiumPortnumberNo4723Порт Appium сервера
appiumPathstringNo/Шлях Appium сервера

*Потрібно вказати або appPath, або noReset: true для підключення до вже запущеного додатку.

Example

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

Support

  • iOS Simulators
  • iOS Real Devices
  • Android Emulators
  • Android Real Devices

close_session

Закриває поточну сесію браузера або додатку.

Parameters

ParameterTypeMandatoryDefaultDescription
detachbooleanNofalseВідключитися від сесії замість закриття (залишає браузер/додаток запущеним)

Notes

Сесії з noReset: true або без appPath автоматично відключаються при закритті для збереження стану.

Support

  • Desktop Browsers
  • Mobile Apps

Переходить за URL-адресою.

Parameters

ParameterTypeMandatoryDescription
urlstringYesURL-адреса для переходу

Example

Navigate to https://webdriver.io

Support

  • Desktop Browsers

Element Interaction

click_element

Клікає на елемент, визначений селектором.

Parameters

ParameterTypeMandatoryDefaultDescription
selectorstringYes-CSS селектор, XPath, або мобільний селектор
scrollToViewbooleanNotrueПрокрутити до елемента перед кліком
timeoutnumberNo3000Максимальний час очікування елемента (мс)

Notes

  • Підтримує текстові селектори WebdriverIO: button=Exact text або a*=Contains text
  • Використовує центральне вирівнювання для позиціонування прокрутки

Example

Click the element with selector "#submit-button"

Support

  • Desktop Browsers
  • Mobile Native Apps

set_value

Вводить текст у поле введення.

Parameters

ParameterTypeMandatoryDefaultDescription
selectorstringYes-Селектор для елемента введення
valuestringYes-Текст для введення
scrollToViewbooleanNotrueПрокрутити до елемента перед введенням
timeoutnumberNo3000Максимальний час очікування елемента (мс)

Notes

Очищає існуюче значення перед введенням нового тексту.

Example

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

Support

  • Desktop Browsers
  • Mobile Native Apps

Page Analysis

get_visible_elements

Отримує видимі та інтерактивні елементи на поточній сторінці або екрані. Це основний інструмент для виявлення елементів, доступних для взаємодії.

Parameters

ParameterTypeMandatoryDefaultDescription
elementTypestringNointeractableТип елементів: interactable (кнопки/посилання/поля), visual (зображення/SVG), або all
inViewportOnlybooleanNotrueПовертати лише елементи, видимі у вікні перегляду
includeContainersbooleanNofalseВключати контейнери макету (ViewGroup, ScrollView, тощо)
includeBoundsbooleanNofalseВключати координати елементів (x, y, width, height)
limitnumberNo0Максимальна кількість елементів для повернення (0 = без обмежень)
offsetnumberNo0Кількість елементів для пропуску (для пагінації)

Returns

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

Веб-елементи включають: tagName, type, id, className, textContent, value, placeholder, href, ariaLabel, role, cssSelector, isInViewport

Мобільні елементи включають: Кілька стратегій локаторів (accessibility ID, resource ID, XPath, UiAutomator/predicates), тип елемента, текст і, за бажанням, межі

Notes

  • Веб: Використовує оптимізований браузерний скрипт для швидкого виявлення елементів
  • Мобільні: Використовує ефективний аналіз XML-джерела сторінки (2 HTTP-запити замість 600+ для запитів елементів)
  • Використовуйте пагінацію (limit та offset) для великих сторінок, щоб зменшити використання токенів

Example

Get all visible elements on the page with their coordinates

Support

  • Desktop Browsers
  • Mobile Apps

get_accessibility

Отримує дерево доступності поточної сторінки із семантичною інформацією про ролі, імена та стани.

Parameters

ParameterTypeMandatoryDefaultDescription
limitnumberNo100Максимальна кількість вузлів для повернення (0 = без обмежень)
offsetnumberNo0Кількість вузлів для пропуску (для пагінації)
rolesstring[]NoAllФільтрувати за певними ролями (наприклад, ["button", "link", "textbox"])
namedOnlybooleanNotrueПовертати лише вузли з іменем/міткою

Returns

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

Notes

  • Тільки для браузера. Для мобільних додатків використовуйте get_visible_elements
  • Корисно, коли get_visible_elements не повертає очікувані елементи
  • namedOnly: true фільтрує анонімні контейнери та зменшує шум

Support

  • Desktop Browsers

Screenshots

take_screenshot

Робить знімок екрана поточного вікна перегляду.

Parameters

ParameterTypeMandatoryDescription
outputPathstringNoШлях для збереження файлу знімка. Якщо опущено, повертає дані base64

Returns

Закодовані в base64 дані зображення (PNG або JPEG) з інформацією про розмір.

Notes

Знімки екрану автоматично оптимізуються:

  • Максимальний розмір: 2000px (зменшується, якщо більше)
  • Максимальний розмір файлу: 1MB
  • Формат: PNG з максимальним стисненням або JPEG, якщо потрібно для відповідності обмеженню розміру

Support

  • Desktop Browsers
  • Mobile Apps

Scrolling

scroll

Прокручує сторінку вгору або вниз на вказану кількість пікселів.

Parameters

ParameterTypeMandatoryDefaultDescription
directionstringYes-Напрямок прокрутки: up або down
pixelsnumberNo500Кількість пікселів для прокрутки

Notes

Тільки для браузера. Для мобільної прокрутки використовуйте інструмент swipe.

Support

  • Desktop Browsers

get_cookies

Отримує куки з поточної сесії.

Parameters

ParameterTypeMandatoryDescription
namestringNoКонкретна назва куки для отримання (опустіть для всіх кук)

Returns

Об'єкти кук з властивостями name, value, domain, path, expiry, secure та httpOnly.

Support

  • Desktop Browsers

Встановлює куку в поточній сесії.

Parameters

ParameterTypeMandatoryDefaultDescription
namestringYes-Назва куки
valuestringYes-Значення куки
domainstringNoCurrentДомен куки
pathstringNo/Шлях куки
expirynumberNo-Закінчення терміну дії як Unix timestamp (секунди)
securebooleanNo-Прапорець secure
httpOnlybooleanNo-Прапорець httpOnly
sameSitestringNo-Атрибут SameSite: strict, lax, або none

Support

  • Desktop Browsers

delete_cookies

Видаляє куки з поточної сесії.

Parameters

ParameterTypeMandatoryDescription
namestringNoКонкретна назва куки для видалення (опустіть, щоб видалити всі)

Support

  • Desktop Browsers

Touch Gestures (Mobile)

tap_element

Натискає на елемент або координати екрану.

Parameters

ParameterTypeMandatoryDescription
selectorstringNo*Селектор елемента для натискання
xnumberNo*X-координата для натискання
ynumberNo*Y-координата для натискання

*Потрібно вказати або selector, або обидві координати x та y.

Support

  • Mobile Apps

swipe

Виконує жест свайпу у вказаному напрямку.

Parameters

ParameterTypeMandatoryDefaultDescription
directionstringYes-Напрямок свайпу: up, down, left, right
durationnumberNo500Тривалість свайпу в мілісекундах (100-5000)
percentnumberNo0.5/0.95Відсоток екрану для свайпу (0-1)

Notes

  • Типовий відсоток: 0.5 для вертикальних свайпів, 0.95 для горизонтальних свайпів
  • Напрямок вказує на рух контенту: "swipe up" прокручує контент вгору

Example

Swipe up to scroll down the screen

Support

  • Mobile Apps

drag_and_drop

Перетягує елемент до іншого елемента або координат.

Parameters

ParameterTypeMandatoryDescription
sourceSelectorstringYesСелектор вихідного елемента для перетягування
targetSelectorstringNo*Селектор цільового елемента для скидання
xnumberNo*Цільове зміщення X (якщо немає targetSelector)
ynumberNo*Цільове зміщення Y (якщо немає targetSelector)
durationnumberNoDefault

*Потрібно вказати або targetSelector, або обидві координати x та y.

Support

  • Mobile Apps

App Lifecycle (Mobile)

get_app_state

Отримує поточний стан додатку.

Parameters

ParameterTypeMandatoryDescription
bundleIdstringYesІдентифікатор додатку (bundle ID для iOS, package name для Android)

Returns

Стан додатку: not installed, not running, running in background (suspended), running in background або running in foreground.

Support

  • Mobile Apps

Context Switching (Hybrid Apps)

get_contexts

Перераховує всі доступні контексти (нативні та веб-представлення).

Parameters

None

Returns

Масив імен контекстів (наприклад, ["NATIVE_APP", "WEBVIEW_com.example.app"]).

Support

  • Mobile Hybrid Apps

get_current_context

Отримує поточний активний контекст.

Parameters

None

Returns

Назва поточного контексту (наприклад, NATIVE_APP або WEBVIEW_*).

Support

  • Mobile Hybrid Apps

switch_context

Перемикається між нативним контекстом та веб-представленнями.

Parameters

ParameterTypeMandatoryDescription
contextstringYesНазва контексту або індекс (починаючи з 1) з get_contexts

Example

Switch to the WEBVIEW_com.example.app context

Support

  • Mobile Hybrid Apps

Device Control (Mobile)

rotate_device

Обертає пристрій до певної орієнтації.

Parameters

ParameterTypeMandatoryDescription
orientationstringYesPORTRAIT або LANDSCAPE

Support

  • Mobile Apps

hide_keyboard

Приховує екранну клавіатуру.

Parameters

None

Support

  • Mobile Apps

get_geolocation

Отримує поточні GPS-координати.

Parameters

None

Returns

Об'єкт з latitude, longitude та altitude.

Support

  • Mobile Apps

set_geolocation

Встановлює GPS-координати пристрою.

Parameters

ParameterTypeMandatoryDescription
latitudenumberYesКоордината широти (-90 до 90)
longitudenumberYesКоордината довготи (-180 до 180)
altitudenumberNoВисота в метрах

Example

Set geolocation to San Francisco (37.7749, -122.4194)

Support

  • Mobile Apps

Script Execution

execute_script

Виконує JavaScript у браузері або мобільні команди через Appium.

Parameters

ParameterTypeMandatoryDescription
scriptstringYesJavaScript-код (браузер) або мобільна команда (наприклад, mobile: pressKey)
argsarrayNoАргументи для скрипта

Browser Examples

// 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) Examples

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

Common Android Key Codes

KeyCode
BACK4
HOME3
ENTER66
MENU82
SEARCH84

More Mobile Commands

For a complete list of available Appium mobile commands, see:

Support

  • Desktop Browsers
  • Mobile Apps (via Appium mobile commands)

Welcome! How can I help?

WebdriverIO AI Copilot