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

Element API

Описание​

IAndroidElementAPI представляет элемент пользовательского интерфейса Android в ZennoDroid (через Appium). Предоставляет свойства и методы для получения информации об элементе и взаимодействия с ним.

Свойства​

Id​

  • string Id { get; }
    Уникальный идентификатор элемента (GUID).

IsDisplayed​

  • bool IsDisplayed { get; }
    Указывает, отображается ли элемент на экране в данный момент.

Rectangle​

  • Rectangle Rectangle { get; }
    Геометрия элемента (позиция и размер) в координатах экрана.

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

string id = de.Id; // Получить значение свойства Id
string text = de.Text; // Получить значение свойства Text
bool isDisplayed = de.IsDisplayed; // Получить значение свойства IsDisplayed
Rectangle rectangle = de.Rectangle; // Получить значение свойства Rectangle

Text​

  • string Text { get; }
    Текстовое содержимое элемента.

Методы​

Clear​

  • void Clear()
    Очищает содержимое элемента (обычно текстовое поле).

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

de.Clear(); // Очисть значение поля элемента

Click​

  • void Click()
    Выполняет клик по элементу.

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

de.Click(); // Кликнуть по элементу

GetAttribute​

  • string GetAttribute(string name)
    Возвращает значение указанного атрибута элемента (например: content-desc, class, checked и др.).

    Параметры:

    • name — имя атрибута.

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

var bounds = de.GetAttribute("bounds"); // Получить значение свойства bounds
var text = de.GetAttribute("text"); // Получить значение свойства text

GetBooleanAttribute​

  • bool GetBooleanAttribute(string name)
    Возвращает логическое значение атрибута (например: enabled, clickable, checked).

    Параметры:

    • name — имя атрибута.

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

bool clickable = de.GetBooleanAttribute("clickable"); // Можно ли нажать на элемент
bool enabled = de.GetBooleanAttribute("enabled"); // Активен ли элемент

GetScreenshot​

  • string GetScreenshot()
    Делает скриншот области, занимаемой элементом, и возвращает его в виде строки Base64.

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

var data = Convert.FromBase64String(de.GetScreenshot()); // Скриншот области элемента
using (var ms = new MemoryStream(data))
using (var bmp = new Bitmap(ms))
bmp.Save(project.Path + "element.png");

SendKeys​

  • void SendKeys(string text)
    Вводит текст посимвольно. Более «реалистичный» ввод, чем SendText.

    Параметры:

    • text — строка.

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

de.SendKeys("ZennoDroid"); // Отправить текст элементу

SendText​

  • void SendText(string text)
    Вводит текст в элемент.

    Параметры:

    • text — текст для ввода.

Пример.​

var driver = instance.DroidInstance.AppiumDriver;

var de = driver.FindElementByXPath("//*[@text=\"Display\"]"); // Найти элемент по xPath
if (de == null)
throw new Exception("Элемент не найден");

de.SendText("Привет мир!"); // Вставить текст в поле элемента