Input API
Пожалуйста, ознакомьтесь с Правилами использования материалов на данном ресурсе.
Описание.
IDroidInputAPI Input
Предоставляет доступ к эмуляции действий на устройстве для взаимодействия с интерфейсом и элементами приложения. Этот интерфейс используется для выполнения свайпов, тапов и ввода текста, а также для выполнения команд ADB Shell.
Методы.
Cвайп по экрану от точки до точки.
void Swipe(int x1, int y1, int x2, int y2)
Параметры:
int x1, int y1 // Координаты первой точки.
int x2, int y2 // Координаты второй точки.
Перегрузка:
int duration // Продолжительность свайпа (скорость).
Пример.
//#1
var input = instance.DroidInstance.Input;
Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца
input.Swipe(start.X, start.Y, end.X, end.Y); // Сделать свайп по координатам
//#2
var duration = 100;
input.Swipe(start.X, start.Y, end.X, end.Y, duration); // Сделать свайп по координатам с настройкой скорости движения
Изогнутый свайп от точки до точки.
void SwipeCurved(int x1, int y1, int x2, int y2, int duration)
Параметры:
int x1, int y1 // Координаты первой точки.
int x2, int y2 // Координаты второй точки.
int duration // Продолжительность свайпа (скорость).
Пример.
var input = instance.DroidInstance.Input;
Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца
var duration = 100; // скорость свайпа
input.SwipeCurved(start.X, start.Y, end.X, end.Y, duration); // Изогнутый свайп
Изогнутый свайп с контролем изгиба.
void SwipeCurved(int x1, int y1, int xPivot, int yPivot, int x2, int y2, int duration)
Параметры:
int x1, int y1 // Координаты первой точки.
int xPivot // Точка вращения по Х.
int yPivot // Точка вращения по Y.
int x2, int y2 // Координаты второй точки.
int duration // Продолжительность свайпа (скорость).
Пример.
var input = instance.DroidInstance.Input;
Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца
var duration = 100; // Скорость свайпа
var xPivot = 200; // Настройка изгиба по X
var yPivot = 700; // Настройка изгиба по Y
input.SwipeCurved(start.X, start.Y, xPivot, yPivot, end.X, end.Y, duration); // Изогнутый свайп c настройкой изгиба
Нажатие по координатам.
void Tap(int x, int y)
Параметры:
int x // Координаты точки по Х.
int y // Координаты точки по Y.
Перегрузка:
int duration // Длительность нажатия.
Пример.
var input = instance.DroidInstance.Input;
Point point = new Point() { X = 100, Y = 500 }; // Точка
input.Tap(point.X, point.Y); // Нажатие по координатам
var duration = 100; // Продолжительность нажатия
input.Tap(point.X, point.Y, duration); // Долгое нажатие по координатам
Нажатие по координатам c дополнительными настройками.
void Touch(int xMin, int yMin, int xMax, int yMax, bool longPress, string clickDistributionType)
Параметры:
int xMin, int yMin // Координаты нижней точки.
int xMax, int yMax // Координаты верхней точки.
bool longPress // Использовать долгое нажатие
string clickDistributionType // Тип клика: "Normal" или "Random".
Пример.
var input = instance.DroidInstance.Input;
Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца
input.Touch(start.X, start.Y, end.X, end.Y, false, "Random"); // Нажатие по координатам с настройками
Долгое нажатие и свайп по экрану.
void LongTapAndSwipe(int x1, int y1, int x2, int y2)
Параметры:
int x1, int y1 // Координаты первой точки.
int x2, int y2 // Координаты второй точки.
Перегрузка:
int duration // Продолжительность свайпа (скорость).
Пример.
var input = instance.DroidInstance.Input;
Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца
input.LongTapAndSwipe(start.X, start.Y, end.X, end.Y); // долгое нажатие и свайп по экрану
var duration = 100; // Продолжительность нажатия
input.LongTapAndSwipe(start.X, start.Y, end.X, end.Y, duration); // долгое нажатие и свайп по экрану, с настройкой скорости свайпа
Ввод текста в поле.
void SendText(string text)
Параметры:
string text // Текст ввода.
Перегрузка:
int latency // Задержка между вводом символов.
Пример.
var input = instance.DroidInstance.Input;
var text = "Привет мир!";
input.SendText(text); // Вводим текст в поле элемента
var latency = 100; // Скорость набора текста
input.SendText(text, latency); // Вводим текст с настройкой скорости ввода