AppiumDriver API
Описание
IAppiumDriverAPI предоставляет доступ к возможностям Appium-драйвера в ZennoDroid. Используется для поиска элементов интерфейса и взаимодействия с ними через стандартные механизмы автоматизации Android (UIAutomator, XPath и др.).
При успешном поиске возвращается объект IAndroidElementAPI, если элемент не найден — null.
Методы
ActiveElement
-
IAndroidElementAPI ActiveElement()
Возвращает текущий активный (сфокусированный) элем ент.Возвращает:
ОбъектIAndroidElementAPI.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var de = driver.ActiveElement(); // Получить элемент в фокусе
FindElementByAccessibilityId
-
IAndroidElementAPI FindElementByAccessibilityId(string id)
Находит элемент по Accessibility ID (content-desc).Параметры:
id— значениеcontent-desc.
Возвращает:
Найденный элемент илиnull.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var de = driver.FindElementByAccessibilityId("Chrome search"); // Найти элемент по свойству content-desc
if (de == null)
throw new Exception("Элемент не найден");
de.Click(); // Кликнуть по элементу
FindElementByClassName
-
IAndroidElementAPI FindElementByClassName(string className)
Находит элемент по имени класса.Параметры:
className— имя класса (например:android.widget.TextView).
Возвращает:
Найденный элемент илиnull.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var de = driver.FindElementByClassName("android.widget.EditText"); // Найти элемент по имени класса
if (de == null)
throw new Exception("Элемент не найден");
de.SendText("Привет мир!"); // Написать текст в поле элемента
FindElementById
-
IAndroidElementAPI FindElementById(string id)
Находит элемент по resource-id.Параметры:
id— идентификатор ресурса.
Возвращает:
Найденный элемент илиnull.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var de = driver.FindElementById("com.android.chrome:id/title"); // Найти элемент по свойству resource-id
if (de == null)
throw new Exception("Элемент не найден");
var text = de.Text; // Получить текст элемента
FindElementByUiAutomator
-
IAndroidElementAPI FindElementByUiAutomator(string uiSelector)
Находит элемент через UiSelector.Параметры:
uiSelector— строка селектора (например:new UiSelector().text("Login")).
Возвращает:
Найденный элемент илиnull.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var de = driver.FindElementByUiAutomator("new UiSelector().textContains(\"screen\")"); // Найти элемент по UiSelector
if (de == null)
throw new Exception("Элемент не найден");
de.Click(); // Кликнуть по элементу
FindElementByXPath
-
IAndroidElementAPI FindElementByXPath(string xpath)
Находит элемент по XPath.Параметры:
xpath— XPath-выражение.
Возвращает:
Найденный элемент илиnull.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");
de.Click(); // Кликнуть по элементу
FindElementsByAccessibilityId
-
IAndroidElementAPI[] FindElementsByAccessibilityId(string id)
Находит все элементы по Accessibility ID (content-desc).Параметры:
id— значениеcontent-desc.
Возвращает:
Массив элементов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var des = driver.FindElementsByAccessibilityId("Chrome search"); // Найти массив элементов по свойству content-desc
if (des == null)
throw new Exception("Элементы не найдены");
var count = des.Length; // Количество найденных элементов.
FindElementsById
-
IAndroidElementAPI[] FindElementsById(string id)
Находит все элементы по resource-id.Параметры:
id— идентификатор ресурса.
Возвращает:
Массив элементов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var des = driver.FindElementsById("com.android.chrome:id/title"); // Найти массив элементов по свойству resource-id
if (des == null)
throw new Exception("Элементы не найдены");
var count = des.Length; // Количество найденных элементов.
FindElementsByClassName
-
IAndroidElementAPI[] FindElementsByClassName(string className)
Находит все элементы по имени класса.Параметры:
className— имя класса.
Возвращает:
Массив элементов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var des = driver.FindElementsByClassName("android.widget.EditText"); // Найти массив элементов по имени класса
if (des == null)
throw new Exception("Элементы не найдены");
var count = des.Length; // Количество найденных элементов.
FindElementsByUiAutomator
-
IAndroidElementAPI[] FindElementsByUiAutomator(string uiSelector)
Находит все элементы через UiSelector.Параметры:
uiSelector— строка селектора.
Возвращает:
Массив элементов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var des = driver.FindElementsByUiAutomator("new UiSelector().textContains(\"screen\")"); // Найти массив элементов по UiSelector
if (des == null)
throw new Exception("Элементы не найдены");
var count = des.Length; // Количество найденных элементов.
FindElementsByXPath
-
IAndroidElementAPI[] FindElementsByXPath(string xpath)
Находит все элементы по XPath.Параметры:
xpath— XPath-выражение.
Возвращает:
Массив элементов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var des = driver.FindElementsByXPath("//*[@text=\"Display\"]"); // Найти массив элементов по xPath
if (des == null)
throw new Exception("Элементы не найдены");
var count = des.Length; // Количество найденных элементов.
ScrollToElementByAccessibilityId
-
void ScrollToElementByAccessibilityId(string id, int maxSwipes)
Прокручивает экран до элемента по Accessibility ID.Параметры:
id— значениеcontent-desc;maxSwipes— максимальное количество свайпов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var countScroll = 3; // Количество скроллов
driver.ScrollToElementByAccessibilityId("Chrome search", countScroll); // Скролим до элемента по свойству content-desc
ScrollToElementByClassName
-
void ScrollToElementByClassName(string className, int maxSwipes)
Прокручивает экран до элемента по имени класса.Параметры:
className— имя класса;maxSwipes— максимальное количество свайпов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var countScroll = 3; // Количество скроллов
driver.ScrollToElementByClassName("android.widget.ImageView", countScroll); // Скролим до элемента по имени класса
ScrollToElementByUiAutomator
-
void ScrollToElementByUiAutomator(string uiSelector, int maxSwipes)
Прокручивает экран до элемента через UiSelector.Параметры:
uiSelector— строка селектора;maxSwipes— максимальное количество свайпов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var countScroll = 3; // Количество скроллов
driver.ScrollToElementByUiAutomator("new UiSelector().text(\"Display\")", countScroll); // Скролим до элемента по UiSelector
GetScreenshot
-
string GetScreenshot()
Делает скриншот текущего экрана устройства.Возвращает:
Изображение в виде строки Base64.
UpdateSettings
-
void UpdateSettings(string key, object value)
Обновляет одну настройку драйвера.Параметры:
key— имя настройки (например, параметры Appium Settings API);value— новое значение настройки.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
driver.UpdateSettings("allowInvisibleElements", false);
-
void UpdateSettings(IEnumerable<KeyValuePair<string, object>> keyValuePairs)
Массовое обновление настроек драйвера.Параметры:
keyValuePairs— коллекция пар ключ-значение для обновления нескольких настроек за один вызов.
Пример.
var driver = instance.DroidInstance.AppiumDriver;
var settings = new KeyValuePair<string, object>[]
{
new KeyValuePair<string, object>("allowInvisibleViewport", true),
new KeyValuePair<string, object>("allowInvisibleElements", false),
new KeyValuePair<string, object>("ignoreUnimportantViews", false),
};
driver.UpdateSettings(settings);