Проверка на десятки признаков в ZennoDroid Enterprise за пару секунд

Регистрация
23.12.2014
Сообщения
505
Благодарностей
128
Баллы
43
Zennodroid Enterprise пользуюсь с первых дней публикации и создавал много шаблонов под свои нужды, по сути основная логика шаблонов - это поиск совпадения на экране , а именно текстовая проверка , получить координаты, получить ширину и/или высоту , клик, получить данные все это каждый раз или по несколько раз обращаюсь к XML структуре , а это вне зависимости от модели телефона занимает не малое время.
Раньше мои проверки выглядели +- вот так
115701


Теория

В первую очередь приступил к вторичным проверкам из серии ошибка приложения, раскрыта шторка, смс , всплывашки от операторов, будильник, PlayMarket , нет интернета, пуш уведомления, запрос геолокации , капча и тд и все они могут вклинится во время работы иных шаблонов и нарушить всю логику работы шаблонов.

Было принято решение реализовать универсальную проверку, Но стандартными методами разрастались шаблоны и очень большие задержки были и было принято решение попробывать сократить время исполнения шаблона без ущерба для стабильности и естественно не обошлось без советов из участников нашего форума.

Первая реализация

Выстроил логику
1) Получил структуру XML
2) Положил содержимое в список
3) Чекаю по очереди все признаки (не только текст)
4) Если совпадение на вторичные признаки то сразу на решение
Сейчас выглядит вот так
115702

Практика

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

1) Получил xml
2) Записал в список
3) Поиск по признакам (не только текст)
4) При совпадении получаю координаты x1,y1,x2,y2 помог @xDIXIx

Далее использую обработанные данные для последующих действий.

Приложил простейший пример реализации на 23 самые необходимые на мой взгляд проверки, на выходе или решение (закрытие или свайп) и/или совпадение в переменной, все это отрабатывает за 1-2 секунды.
 
Тема статьи
Другое

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

radv

Client
Регистрация
11.05.2015
Сообщения
3 681
Благодарностей
1 864
Баллы
113
Приложил простейший пример реализации на 23 самые необходимые на мой взгляд проверки, на выходе или решение (закрытие или свайп) и/или совпадение в переменной, все это отрабатывает за 1-2 секунды.
А можете сделать скриншоты или описания каждой проверки, чтобы их не только в файле проекта их можно было посмотреть?
 
Регистрация
23.12.2014
Сообщения
505
Благодарностей
128
Баллы
43
А можете сделать скриншоты или описания каждой проверки, чтобы их не только в файле проекта их можно было посмотреть?
1-2 проверка шторки и закрытие их
3-5 ошибка приложения и приложение не отвечает (выводит в переменную)
6-12 проверка на плеймаркет и закрытие его
13 проверка на плеер и закрытие
14 проверка на камеру и закрытие
15-16 проверка на главную телефона (выводит в переменную)
17 проверка на плеер и закрытие
18 проверка на часы/будильник и закрытие
19 проверка на обновления (приложение Яндекс на пол экрана)
20 проверка на поделиться и закрытие
21 проверка на активную строку браузера и закрытие
22 -23 проверка на контакты (нечаяно нажали на номер телефона) и закрытие
По сути добавить можно любой признак и последующее действие
 
  • Спасибо
Реакции: radv

Dgo

Новичок
Регистрация
24.08.2022
Сообщения
7
Благодарностей
0
Баллы
1
Еще можно это все в 1 кубик c# положить и будет всего лишь 1 кубик
 
Регистрация
23.12.2014
Сообщения
505
Благодарностей
128
Баллы
43

myndeswx

Client
Регистрация
15.05.2017
Сообщения
408
Благодарностей
92
Баллы
28
Nice! After using ZD for a while I realized to use the same method, just get the XML once and regex the contents to see what state is it in. It is also important to check the 'bounds' because the element can be on the XML but not visible on the screen (need to scroll if you need to click it).
 
  • Спасибо
Реакции: Мамикон

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)