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

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);