Как определить идентификатор использованного элемента в Android?

Я занимаюсь исследовательским проектом, в который включена автоматизация Android. Требуется автоматизировать шаги, которые записывают, когда пользователь нажимает на экран.

Я потратил целых 2 дня, чтобы найти правильный способ идентифицировать нажатый элемент на экране со стороны ПК (на самом устройстве тоже все в порядке).

нам нужно предоставить идентификатор, текст и т. д. для сред автоматизации. это что-то вроде обратной версии фреймворка автоматизации. Необходимо записывать шаги, такие как аддон селена.

Может ли кто-нибудь предложить мне способ выполнить мое требование. Нет необходимости в образце кода. ищу идею, как реализовать это требование.

Спасибо


person www    schedule 02.05.2019    source источник


Ответы (2)


Вот подход, который поможет вам.

1) Получить все элементы в документе

2) Добавьте пользовательский прослушиватель событий для каждого шага.

3) Отслеживайте нажатие с помощью прослушивателя событий

Вот пример кода, как я это сделал в одном из своих аддонов для Chrome.

this.AddEventListeners = function()
{
    var document = window.document;
    var elements = this.GetAllElements(document.body);

    for (var i = 0; i < elements.length; i++)   {
        // not sure if it's onTouchEvent event or something else (update the event accordingly in the below line)
        elements[i].addEventListener("onTouchEvent", customTapEvent, false);
    }   
    this.haveEventListeners = true;
}

Метод GetAllElements:

this.GetAllElements = function(element)
{
    var elements = new Array();

    if (element && element.hasChildNodes()) {
        elements.push(element);

        var childs = element.childNodes;

        for (var i = 0; i < childs.length; i++) {
            if (childs[i].hasChildNodes()) {
                elements = elements.concat(this.GetAllElements(childs[i]));
            }
            else if (childs[i].nodeType == 1) {
                elements.push(childs[i]);
            }
        }
    }

    return elements;
}

Напишите логику в методеcustomTapEvent.

person supputuri    schedule 02.05.2019
comment
@www Было ли это полезно? Дайте мне знать, если вам нужна дополнительная информация. - person supputuri; 04.05.2019

Для записи ваших событий вам необходимо использовать Appium (Android + iOS). Для шагов вы можете попробовать библиотеку cucumber. Все, что вам нужно, вы найдете на YouTube.

person rusu dan    schedule 03.05.2019