Перейти к основному содержанию

Инструменты

Следующие инструменты доступны через сервер WebdriverIO MCP. Эти инструменты позволяют ИИ-ассистентам автоматизировать браузеры и мобильные приложения.

Управление сессиями

start_browser

Запускает сессию браузера Chrome.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
headlessbooleanНетfalseЗапуск Chrome в режиме без интерфейса
windowWidthnumberНет1920Ширина окна браузера (400-3840)
windowHeightnumberНет1080Высота окна браузера (400-2160)
navigationUrlstringНет-URL, на который нужно перейти после запуска браузера

Пример

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

Поддержка

  • Настольные браузеры

start_app_session

Запускает сессию мобильного приложения на iOS или Android через Appium.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
platformstringДа-Платформа для автоматизации: iOS или Android
deviceNamestringДа-Имя устройства или симулятора/эмулятора
appPathstringНет*-Путь к файлу приложения (.app, .ipa, или .apk)
platformVersionstringНет-Версия ОС (например, 17.0, 14)
automationNamestringНетAutoXCUITest (iOS), UiAutomator2 или Espresso (Android)
udidstringНет-Уникальный идентификатор устройства (необходим для реальных устройств iOS)
noResetbooleanНетfalseСохранить состояние приложения между сессиями
fullResetbooleanНетtrueУдалить и переустановить приложение перед сессией
autoGrantPermissionsbooleanНетtrueАвтоматически предоставлять разрешения приложению
autoAcceptAlertsbooleanНетtrueАвтоматически принимать системные уведомления
autoDismissAlertsbooleanНетfalseОтклонять (вместо принятия) уведомления
appWaitActivitystringНет-Активность, которую нужно дождаться при запуске (только Android)
newCommandTimeoutnumberНет60Секунды до истечения времени сессии из-за бездействия
appiumHoststringНет127.0.0.1Хост сервера Appium
appiumPortnumberНет4723Порт сервера Appium
appiumPathstringНет/Путь сервера Appium

*Либо должен быть предоставлен appPath, либо noReset: true для подключения к уже запущенному приложению.

Пример

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

Поддержка

  • Симуляторы iOS
  • Реальные устройства iOS
  • Эмуляторы Android
  • Реальные устройства Android

close_session

Закрывает текущую сессию браузера или приложения.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
detachbooleanНетfalseОтсоединиться от сессии вместо закрытия (оставляет браузер/приложение запущенным)

Примечания

Сессии с noReset: true или без appPath автоматически отсоединяются при закрытии для сохранения состояния.

Поддержка

  • Настольные браузеры
  • Мобильные приложения

Навигация

Переходит по URL.

Параметры

ПараметрТипОбязательныйОписание
urlstringДаURL, на который нужно перейти

Пример

Navigate to https://webdriver.io

Поддержка

  • Настольные браузеры

Взаимодействие с элементами

click_element

Кликает на элемент, определенный селектором.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
selectorstringДа-CSS селектор, XPath или мобильный селектор
scrollToViewbooleanНетtrueПрокрутить страницу до элемента перед кликом
timeoutnumberНет3000Максимальное время ожидания элемента (мс)

Примечания

  • Поддерживает текстовые селекторы WebdriverIO: button=Точный текст или a*=Содержит текст
  • Использует центральное выравнивание для позиционирования прокрутки

Пример

Click the element with selector "#submit-button"

Поддержка

  • Настольные браузеры
  • Нативные мобильные приложения

set_value

Вводит текст в поле ввода.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
selectorstringДа-Селектор для элемента ввода
valuestringДа-Текст для ввода
scrollToViewbooleanНетtrueПрокрутить до элемента перед вводом
timeoutnumberНет3000Максимальное время ожидания элемента (мс)

Примечания

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

Пример

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

Поддержка

  • Настольные браузеры
  • Нативные мобильные приложения

Анализ страницы

get_visible_elements

Получает видимые и интерактивные элементы на текущей странице или экране. Это основной инструмент для обнаружения доступных для взаимодействия элементов.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
elementTypestringНетinteractableТип элементов: interactable (кнопки/ссылки/поля ввода), visual (изображения/SVG), или all
inViewportOnlybooleanНетtrueВозвращать только элементы, видимые во viewport
includeContainersbooleanНетfalseВключать контейнеры макета (ViewGroup, ScrollView и т.д.)
includeBoundsbooleanНетfalseВключать координаты элемента (x, y, ширина, высота)
limitnumberНет0Максимальное количество возвращаемых элементов (0 = неограниченно)
offsetnumberНет0Количество элементов для пропуска (для пагинации)

Возвращает

{
"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), тип элемента, текст и, опционально, границы

Примечания

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

Пример

Get all visible elements on the page with their coordinates

Поддержка

  • Настольные браузеры
  • Мобильные приложения

get_accessibility

Получает дерево доступности текущей страницы с семантической информацией о ролях, именах и состояниях.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
limitnumberНет100Максимальное количество узлов для возврата (0 = неограниченно)
offsetnumberНет0Количество узлов для пропуска (для пагинации)
rolesstring[]НетВсеФильтр по определенным ролям (например, ["button", "link", "textbox"])
namedOnlybooleanНетtrueВозвращать только узлы с именем/меткой

Возвращает

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

Примечания

  • Только для браузера. Для мобильных приложений используйте вместо этого get_visible_elements
  • Полезно, когда get_visible_elements не возвращает ожидаемые элементы
  • namedOnly: true отфильтровывает анонимные контейнеры и уменьшает шум

Поддержка

  • Настольные браузеры

Скриншоты

take_screenshot

Делает скриншот текущего видимого экрана.

Параметры

ПараметрТипОбязательныйОписание
outputPathstringНетПуть для сохранения файла скриншота. Если опущен, возвращает данные в base64

Возвращает

Данные изображения в формате Base64 (PNG или JPEG) с информацией о размере.

Примечания

Скриншоты автоматически оптимизируются:

  • Максимальный размер: 2000 пикселей (масштабируется, если больше)
  • Максимальный размер файла: 1МБ
  • Формат: PNG с максимальным сжатием или JPEG, если необходимо соблюсти лимит размера

Поддержка

  • Настольные браузеры
  • Мобильные приложения

Прокрутка

scroll

Прокручивает страницу вверх или вниз на указанное количество пикселей.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
directionstringДа-Направление прокрутки: up или down
pixelsnumberНет500Количество пикселей для прокрутки

Примечания

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

Поддержка

  • Настольные браузеры

Управление куками

get_cookies

Получает куки из текущей сессии.

Параметры

ПараметрТипОбязательныйОписание
namestringНетКонкретное имя куки для получения (пропустите для всех куки)

Возвращает

Объекты куки с именем, значением, доменом, путем, сроком действия, secure и httpOnly свойствами.

Поддержка

  • Настольные браузеры

Устанавливает куки в текущей сессии.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
namestringДа-Имя куки
valuestringДа-Значение куки
domainstringНетТекущийДомен куки
pathstringНет/Путь куки
expirynumberНет-Срок действия в формате Unix timestamp (секунды)
securebooleanНет-Флаг secure
httpOnlybooleanНет-Флаг httpOnly
sameSitestringНет-Атрибут SameSite: strict, lax, или none

Поддержка

  • Настольные браузеры

delete_cookies

Удаляет куки из текущей сессии.

Параметры

ПараметрТипОбязательныйОписание
namestringНетКонкретное имя куки для удаления (пропустите для удаления всех)

Поддержка

  • Настольные браузеры

Сенсорные жесты (Мобильные)

tap_element

Тапает по элементу или по координатам экрана.

Параметры

ПараметрТипОбязательныйОписание
selectorstringНет*Селектор элемента для тапа
xnumberНет*X координата для тапа
ynumberНет*Y координата для тапа

*Требуется либо selector, либо оба параметра x и y.

Поддержка

  • Мобильные приложения

swipe

Выполняет жест смахивания в указанном направлении.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
directionstringДа-Направление смахивания: up, down, left, right
durationnumberНет500Продолжительность смахивания в миллисекундах (100-5000)
percentnumberНет0.5/0.95Процент экрана для смахивания (0-1)

Примечания

  • Значение по умолчанию для percent: 0.5 для вертикальных свайпов, 0.95 для горизонтальных
  • Направление указывает на движение контента: "swipe up" прокручивает контент вверх

Пример

Swipe up to scroll down the screen

Поддержка

  • Мобильные приложения

drag_and_drop

Перетаскивает элемент к другому элементу или координатам.

Параметры

ПараметрТипОбязательныйОписание
sourceSelectorstringДаСелектор исходного элемента для перетаскивания
targetSelectorstringНет*Селектор целевого элемента для сброса
xnumberНет*Целевое смещение X (если нет targetSelector)
ynumberНет*Целевое смещение Y (если нет targetSelector)
durationnumberНетПо умолчанию

*Требуется либо targetSelector, либо оба параметра x и y.

Поддержка

  • Мобильные приложения

Жизненный цикл приложений (Мобильные)

get_app_state

Получает текущее состояние приложения.

Параметры

ПараметрТипОбязательныйОписание
bundleIdstringДаИдентификатор приложения (bundle ID для iOS, package name для Android)

Возвращает

Состояние приложения: not installed, not running, running in background (suspended), running in background, или running in foreground.

Поддержка

  • Мобильные приложения

Переключение контекста (Гибридные приложения)

get_contexts

Перечисляет все доступные контексты (нативные и webview).

Параметры

Нет

Возвращает

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

Поддержка

  • Мобильные гибридные приложения

get_current_context

Получает текущий активный контекст.

Параметры

Нет

Возвращает

Имя текущего контекста (например, NATIVE_APP или WEBVIEW_*).

Поддержка

  • Мобильные гибридные приложения

switch_context

Переключается между нативным и webview контекстами.

Параметры

ПараметрТипОбязательныйОписание
contextstringДаИмя контекста или индекс (начиная с 1) из get_contexts

Пример

Switch to the WEBVIEW_com.example.app context

Поддержка

  • Мобильные гибридные приложения

Управление устройством (Мобильные)

rotate_device

Поворачивает устройство в указанную ориентацию.

Параметры

ПараметрТипОбязательныйОписание
orientationstringДаPORTRAIT или LANDSCAPE

Поддержка

  • Мобильные приложения

hide_keyboard

Скрывает экранную клавиатуру.

Параметры

Нет

Поддержка

  • Мобильные приложения

get_geolocation

Получает текущие GPS координаты.

Параметры

Нет

Возвращает

Объект с latitude, longitude и altitude.

Поддержка

  • Мобильные приложения

set_geolocation

Устанавливает GPS координаты устройства.

Параметры

ПараметрТипОбязательныйОписание
latitudenumberДаКоордината широты (-90 до 90)
longitudenumberДаКоордината долготы (-180 до 180)
altitudenumberНетВысота в метрах

Пример

Set geolocation to San Francisco (37.7749, -122.4194)

Поддержка

  • Мобильные приложения

Выполнение скриптов

execute_script

Выполняет JavaScript в браузере или мобильные команды через Appium.

Параметры

ПараметрТипОбязательныйОписание
scriptstringДаJavaScript код (браузер) или мобильная команда (например, mobile: pressKey)
argsarrayНетАргументы для скрипта

Примеры для браузера

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

Примеры для мобильных (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"] }] })

Часто используемые коды клавиш Android

КлавишаКод
BACK4
HOME3
ENTER66
MENU82
SEARCH84

Дополнительные мобильные команды

Для полного списка доступных мобильных команд Appium, смотрите:

Поддержка

  • Настольные браузеры
  • Мобильные приложения (через мобильные команды Appium)

Welcome! How can I help?

WebdriverIO AI Copilot