Вебинар Вебинар «Основы работы с ZennoDroid: выбор мобильного телефона и его прошивка»

riktzer

Client
Регистрация
15.07.2024
Сообщения
13
Благодарностей
5
Баллы
3
@Sherminator "последнюю милю" не могу решить. Осталось только запустить готовый проект в самом ZD.

К вашему шаблону я добавил первый кубик который отвечает за выбор устройства, без него писало: "Ошибку при выборе устройства". Сейчас пишет ошибку в логах: Выполнение действия смена модели устройства Устройство остановлено. Часик тыкаю в Гугл и ютуб не могу найти ответ. Можете подсказать?)
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 117
Благодарностей
586
Баллы
113
@Sherminator "последнюю милю" не могу решить. Осталось только запустить готовый проект в самом ZD.

К вашему шаблону я добавил первый кубик который отвечает за выбор устройства, без него писало: "Ошибку при выборе устройства". Сейчас пишет ошибку в логах: Выполнение действия смена модели устройства Устройство остановлено. Часик тыкаю в Гугл и ютуб не могу найти ответ. Можете подсказать?)
Так поимо того что бы выбрать устройство, его надо запустить, там разве нету этого кубика после кубика выбора устройства ?
upd. А ведь реально нету, щас подправлю.

Можно скачивать, добавил кубик недостающий
 
  • Спасибо
Реакции: riktzer

riktzer

Client
Регистрация
15.07.2024
Сообщения
13
Благодарностей
5
Баллы
3
Так поимо того что бы выбрать устройство, его надо запустить, там разве нету этого кубика после кубика выбора устройства ?
upd. А ведь реально нету, щас подправлю.

Можно скачивать, добавил кубик не достающий
Неа, у вас первый кубик в тестовом шаблоне: Выбор устройства.

Добавил еще кубик запустить устройство и полетело. Еще по логике последним кубиком в шаблон нужно добавить остановить устройство - верно?
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 117
Благодарностей
586
Баллы
113
Неа, у вас первый кубик в тестовом шаблоне: Выбор устройства.

Добавил еще кубик запустить устройство и полетело. Еще по логике последним кубиком в шаблон нужно добавить остановить устройство - верно?
ну вот я после выбора устройства добавил ещё запуск.

Не, можно не добавлять
 
  • Спасибо
Реакции: riktzer

riktzer

Client
Регистрация
15.07.2024
Сообщения
13
Благодарностей
5
Баллы
3
Вообщем вывод от новичка для новичков по освоению Zenno Droid enterprise c полного нуля по гайду и ответам @Sherminator

Вводные.
У меня не было винды, последний раз я тыкал в комп с виндой лет 5 назад. Андрой в руках держал только когда знакомые картинки и видосы показывали. Но не смотря на все эти нюансы за 3 дня получилось норм так освоится, не до конца кнш и не без помощи @Sherminator в большей степени и афишал саппорта в меньшей степени.

- Один день покупка ноута и андройда (с пикселем все с первого раза завелось по видосу почти один к одному), в этот же день перепрошивка и вся настройка связки с зенно дройдом. Разобраться что такое abd и как оно работает.
- Еще один день потестировать кубики, понять интерфейс прожект мейкера, собрать пару тестовых шаблонов, накидать скелет нужного шаблона. Тут еще потестировать разные расходники, найти подходящие и закупить их в объеме.
- И еще один день отдебажить все нюансы и логические ветвления в скрипте.

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

P.S. И еще раз огромное спасибо @Sherminator без его гайда по прошивке и настройке чисто на эти действия ушло бы не меньше недели чистого времени минимум, а ту и больше.
 

riktzer

Client
Регистрация
15.07.2024
Сообщения
13
Благодарностей
5
Баллы
3
Честный фидбэк дал, теперь по делу.

@Sherminator я все делал на одном google account-е, оказывается после n-этираций шаблона прилетает бан по google account-у. Сейчас вот думал идти писать логику по логину в Google Account и привязку карты, но решил попробовать "деньгами закидать проблему")

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

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 117
Благодарностей
586
Баллы
113
Честный фидбэк дал, теперь по делу.

@Sherminator я все делал на одном google account-е, оказывается после n-этираций шаблона прилетает бан по google account-у. Сейчас вот думал идти писать логику по логину в Google Account и привязку карты, но решил попробовать "деньгами закидать проблему")

У вас наверняка есть готовый шаблон под это дело, готов его купить за деньги, что бы просто сэкономить свое время.
Гляну, вроде есть такое, проверю на роботоспособность и если есть что продавать, в личку отпишу в течении пары дней
 
  • Спасибо
Реакции: riktzer

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 117
Благодарностей
586
Баллы
113
Честный фидбэк дал, теперь по делу.

@Sherminator я все делал на одном google account-е, оказывается после n-этираций шаблона прилетает бан по google account-у. Сейчас вот думал идти писать логику по логину в Google Account и привязку карты, но решил попробовать "деньгами закидать проблему")

У вас наверняка есть готовый шаблон под это дело, готов его купить за деньги, что бы просто сэкономить свое время.
Доброго времени суток, не смогу помочь, глянул, там во первых всё на шарпе написано, и если что то сломается то это починить не сможете, а я этим заниматься не буду. А второе, там помимо самого кода для авторизации аккаунта в комплекте 2 библиотеки моих идут, для свайпов, кликов и для определения наличия элементов на странице, а их я продавать не собираюсь.
 

riktzer

Client
Регистрация
15.07.2024
Сообщения
13
Благодарностей
5
Баллы
3
Доброго времени суток, не смогу помочь, глянул, там во первых всё на шарпе написано, и если что то сломается то это починить не сможете, а я этим заниматься не буду. А второе, там помимо самого кода для авторизации аккаунта в комплекте 2 библиотеки моих идут, для свайпов, кликов и для определения наличия элементов на странице, а их я продавать не собираюсь.
Блин, печаль( Я прям сильно на это рассчитывал.

А без этих библиотек не вариант продать, я бы код сам поправил в случае поломок?
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 117
Благодарностей
586
Баллы
113
Блин, печаль( Я прям сильно на это рассчитывал.

А без этих библиотек не вариант продать, я бы код сам поправил в случае поломок?
Без этих библиотек я и бесплатно могу отдать код, на работоспособность не проврял, мб что то подправить надо будет, если в коде разбираешься думаю труда не составит.


C#:
 public class Auth
    {
        ZDE_Emulation.CheckPresentElement check;
        ZDE_Emulation.ClickToElement click;
        ZDE_Emulation.SetText text;
        ZDE_Emulation.SwipeAndClickToElement swipeAndClick;
        ZDE_Emulation.SwipeToElement swipe;
        ZDE_Emulation.WaitElement wait;
        Instance instance;
        IZennoPosterProjectModel project;
        public static object readAccLock = new object();
        string login = string.Empty;
        string password = string.Empty;
        string addMail = string.Empty;
        int counter;
        public Auth(Instance instance, IZennoPosterProjectModel project)
        {
            this.project = project;
            this.instance = instance;

            check = new CheckPresentElement(instance,project);
            click = new ClickToElement(instance,project);
            text = new SetText(instance,project);
            swipeAndClick = new SwipeAndClickToElement(instance,project);
            swipe = new SwipeToElement(instance,project);
            wait = new WaitElement(instance,project);
        }
        public void Start()
        {
            GoToAuthPage(); //Метод перехода на страницу аунтефикации
            SetLoginAndPassword(); //Метод ввода логина и пароля
            ConfirmGoogleTrash(); //Метод подтверждения политики, синхронизации и прочего барахла
        }
        void GoToAuthPage()
        {
            instance.DroidInstance.App.Open("com.android.vending");
            try
            {
                click.ByXpath("//*[@text=\"Войти\"]", 15);
            }
            catch (Exception)
            {
                instance.DroidInstance.App.Close("com.android.vending");
                instance.DroidInstance.App.CleanCache("com.android.vending");
                instance.DroidInstance.App.Open("com.android.vending");
                click.ByXpath("//*[@text=\"Войти\"]", 15);
            }

            while (check.ByXpath("//*[@text=\"Проверка…\"]"))
            {
                if (counter == 20)
                {
                    throw new Exception("Не прошли проверку.");
                }
                if (check.ByXpath("//*[@text=\"Произошла ошибка\"]"))
                {
                    throw new Exception("Не прошли проверку.");
                }
                Thread.Sleep(3000);
                counter++;
            }
            Thread.Sleep(5000);
            if (!check.ByXpath("//*[@text=\"Используйте аккаунт Google. \"]"))
                throw new Exception("Не вышли на страницу входа.");

        }
        void SetLoginAndPassword()
        {
            GetAccount();
            text.ByXpathClick("//*[@resource-id=\"identifierId\"]|//*[@class='android.widget.EditText']", login, true);
            wait.ByXPath("//*[@text=\"Показать пароль\"]");
            text.ByXpathClick("//*[@class='android.widget.EditText' and @index='0' and @clickable='true' and @focusable='true']", password, true);
            Thread.Sleep(10000);
            if (check.ByXpath("//*[@text=\"Подтвердите свою личность\"]"))
            {
                click.ByXpath("//*[@text=\"Подтвердите резервный адрес электронной почты\"]", 3);
                text.ByXpathClick("//*[@class='android.widget.EditText' and @index='0' and @clickable='true' and @focusable='true']", addMail, true);
                Thread.Sleep(10000);
            }
        }
        void ConfirmGoogleTrash()
        {
            if (check.ByXpath("//*[@text=\"Резервное копирование контактов\"]"))
            {
                swipeAndClick.ByXpath("//*[@text=\"Не включать\"]");
                Thread.Sleep(5000);
            }
            if (check.ByXpath("//*[@text=\"Добро пожаловать!\"]"))
            {
                swipeAndClick.ByXpath("//*[@text='Принимаю']");

                wait.ByXPath("//*[@text='Сервисы Google']|//*[@text='Вы вошли в аккаунт']|//*[@text='Не включать']");

                if (check.ByXpath("//*[@text='Не включать']"))
                {
                    click.ByXpath("//*[@text='Не включать']", 2);
                    wait.ByXPath("//*[@text='Не сейчас']|//*[@text='Сервисы Google']");
                    if (check.ByXpath("//*[@text='Не сейчас']"))
                    {
                        click.ByXpath("//*[@text='Не сейчас']", 2);
                    }
                }
                if (check.ByXpath("//*[@text='Вы вошли в аккаунт']"))
                {
                    click.ByXpath("//*[@text='Не сейчас']", 2);
                    wait.ByXPath("//*[@text='Сервисы Google']");
                }

                click.ByXpath("//*[@text='ВКЛ']", 2);
                click.ByXpath("//*[@text='ЕЩЁ']|//*[@text='Ещё']", 2);
                click.ByXpath("//*[@text='ПРИНЯТЬ']|//*[@text='Принят']", 10);

                try
                {
                    wait.ByXPath("//*[@text='Хотите подписаться на рассылку?']|//*[@text='Условия использования']");
                    if (check.ByXpath("//*[@text='Хотите подписаться на рассылку?']"))
                    {
                        click.ByXpath("//*[@text='Нет']", 2);
                    }
                    if (check.ByXpath("//*[@text='Условия использования']"))
                    {
                        click.ByXpath("//*[@text=\"Принять\"]", 10);
                    }
                }
                catch (Exception) { }

            }
        }
}
Крч в методе click.ByXpath("//*[@text=\"Войти\"]", 15); число после xpath это пауза в секундах после клика.
То что у меня циклы типа такого
C#:
            while (check.ByXpath("//*[@text=\"Проверка…\"]"))
            {
            }
метод возвращает true или false в зависимости он того нашел он элемент или нет, это типа ожидание элемента с выходом по ошибке если элемент долго не появлялся

ну и в методе с вводом текста text.ByXpathClick("//*[@resource-id=\"identifierId\"]|//*[@class='android.widget.EditText']", login, true); true в аргементе значит что после ввода будет нажат enter
 
Последнее редактирование:
  • Спасибо
Реакции: riktzer

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