Селекторы
Сервер WebdriverIO MCP поддерживает множество стратегий селекторов для поиска элементов на веб-страницах и в мобильных приложениях.
Полную документацию по селекторам, включая все стратегии селекторов WebdriverIO, смотрите в основном руководстве Selectors. Эта страница посвящена селекторам, обычно используемым с сервером MCP.
Веб-селекторы
Для автоматизации браузера сервер MCP поддерживает все стандартные селекторы WebdriverIO. Наиболее часто используемые включают:
| Селектор | Пример | Описание |
|---|---|---|
| CSS | #login-button, .submit-btn | Стандартные CSS селекторы |
| XPath | //button[@id='submit'] | XPath выражения |
| Text | button=Submit, a*=Click | Текстовые селекторы WebdriverIO |
| ARIA | aria/Submit Button | Селекторы по имени доступности |
| Test ID | [data-testid="submit"] | Рекомендуется для тестирования |
Подробные примеры и лучшие практики смотрите в документации Selectors.
Мобильные селекторы
Мобильные селекторы работают с платформами iOS и Android через Appium.
Accessibility ID (Рекомендуется)
Accessibility ID - это самый надежный кросс-платформенный селектор. Они работают как на iOS, так и на Android и стабильны при обновлениях приложения.
# Синтаксис
~accessibilityId
# Примеры
~loginButton
~submitForm
~usernameField
Всегда предпочитайте accessibility ID, когда они доступны. Они обеспечивают:
- Кросс-платформенную совместимость (iOS + Android)
- Стабильность при изменениях UI
- Лучшую поддерживаемость тестов
- Улучшенную доступность вашего приложения
Android селекторы
UiAutomator
UiAutomator селекторы мощные и быстрые для Android.
# По тексту
android=new UiSelector().text("Login")
# По частичному тексту
android=new UiSelector().textContains("Log")
# По идентификатору ресурса
android=new UiSelector().resourceId("com.example:id/login_button")
# По имени класса
android=new UiSelector().className("android.widget.Button")
# По описанию (доступность)
android=new UiSelector().description("Login button")
# Комбинированные условия
android=new UiSelector().className("android.widget.Button").text("Login")
# Прокручиваемый контейнер
android=new UiScrollable(new UiSelector().scrollable(true)).scrollIntoView(new UiSelector().text("Item"))
Resource ID
Resource ID обеспечивают стабильную идентификацию элементов на Android.
# Полный Resource ID
id=com.example.app:id/login_button
# Частичный ID (пакет приложения подразумевается)
id=login_button
XPath (Android)
XPath работает на Android, но медленнее, чем UiAutomator.
# По классу и тексту
//android.widget.Button[@text='Login']
# По Resource ID
//android.widget.EditText[@resource-id='com.example:id/username']
# По описанию содержимого
//android.widget.ImageButton[@content-desc='Menu']
# Иерархический
//android.widget.LinearLayout/android.widget.Button[1]
iOS селекторы
Predicate String
iOS Predicate Strings быстрые и мощные для автоматизации iOS.
# По метке
-ios predicate string:label == "Login"
# По частичной метке
-ios predicate string:label CONTAINS "Log"
# По имени
-ios predicate string:name == "loginButton"
# По типу
-ios predicate string:type == "XCUIElementTypeButton"
# По значению
-ios predicate string:value == "ON"
# Комбинированные условия
-ios predicate string:type == "XCUIElementTypeButton" AND label == "Login"
# Видимость
-ios predicate string:label == "Login" AND visible == 1
# Без учета регистра
-ios predicate string:label ==[c] "login"
Операторы Predicate:
| Оператор | Описание |
|---|---|
== | Равно |
!= | Не равно |
CONTAINS | Содержит подстроку |
BEGINSWITH | Начинается с |
ENDSWITH | Заканчивается на |
LIKE | Соответствие по маске |
MATCHES | Соответствие регулярному выражению |
AND | Логическое И |
OR | Логическое ИЛИ |