Релиз ZennoDroid Pro — Финальный релиз!

radv

Client
Регистрация
11.05.2015
Сообщения
3 678
Благодарностей
1 860
Баллы
113
  • Спасибо
Реакции: artsmm

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63
для проверки значения сделайте вывод в лог. увидите правильно формирует значение или нет.
можете мне в ТГ написать? не получается пройти этот момент. Нужна консультация ваша. По оплате в ТГ пообщаемся
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
554
Благодарностей
41
Баллы
28
Где найти мануал по работе? Конкретно интересует как правльно ловить пуш уведомления?
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 913
Благодарностей
747
Баллы
113

andropovleva

Client
Регистрация
23.11.2019
Сообщения
554
Благодарностей
41
Баллы
28
Очень печально..
 
  • Спасибо
Реакции: Iv1

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 913
Благодарностей
747
Баллы
113
Очень печально..
Я Энтерпрайз отверткой уже наверное месяца 4 ковыряю чтобы проект свой воссоздать, что на постере сделан. И до этого у меня на обычном дройде для memu был хороший опыт. Т.е. не с нуля залез. А до этого сам еще телефоны ранее шил и рутил. И все равно много много месяцев чтобы более или менее чисто с постера перенести то, что и так известно как должно работать.

Тут ОЧЕНЬ высокий порог входа.
 

andropovleva

Client
Регистрация
23.11.2019
Сообщения
554
Благодарностей
41
Баллы
28
Еще какой, высокий)
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63
применить правильно String.Format
Решил так:
C#:
string xpath = String.Format(@"//*[@text=""{0} ₽""]",project.Variables["myPrice"].Value);

var myTov = droid2.FindElementByXPath(xpath);
    
if(myTov != null)
{
    project.SendInfoToLog("Нашли свой товар",true);
    myTov.Click();
    Thread.Sleep(3000);
}
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 678
Благодарностей
1 860
Баллы
113
  • Спасибо
Реакции: artsmm

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
110090

Кто вкурсе почему идет такой сбой. Рут права есть. Шаблон с последнего обновления сохранения яндекс и гугл аккаунтов


var droid = instance.DroidInstance;
var app = project.Variables["app_name"].Value;
var json = droid.App.GetAccounts(app);
project.Variables["accounts"].Value = json;
 

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
судя по всему нет.. разбираюсь как сделать. как его сделать для android 11 тел redmi 9a ?

пробовал с помощью kingoroot, пишет что рутирование не удалось
на 11 андройде 9а рут это пляски с бубном лучше на 10-й андройд перепрошей
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
378
Благодарностей
269
Баллы
63

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
а когда ждать испровления спциально ради проверки этой темы купил дройд на месяц. просто второй раз ради проверки покупать не хочется как его не купишь он валяется. Если эта тема рабочая тогда его стоит покупать если нет то даром не нужен
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
  • Спасибо
Реакции: artsmm

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63
Работает) оч помогли) есть какая-либо возможность или отключить, или отслеживать обновления memu, чтобы делать паузу когда они происходят? как понос просто сваливаются и стопорят весь шаблон))
 

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
Работает) оч помогли) есть какая-либо возможность или отключить, или отслеживать обновления memu, чтобы делать паузу когда они происходят? как понос просто сваливаются и стопорят весь шаблон))
эмули только для тестов реалы рулят
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
Работает) оч помогли) есть какая-либо возможность или отключить, или отслеживать обновления memu, чтобы делать паузу когда они происходят? как понос просто сваливаются и стопорят весь шаблон))
какие именно обновления имеются введу эмулятора или самого мему
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
  • Спасибо
Реакции: artsmm

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63
это команда определения размера экрана
Я нашел такой способ, но он корректно не работает:
C#:
string adbPath = @"C:\Program Files\ZennoLab\EN\ZennoDroid Pro\2.3.5.0\Progs\adb.exe";
int scrollDurationMs = 500;

ProcessStartInfo scrollProcessStartInfo = new ProcessStartInfo
{
    FileName = adbPath,
    Arguments = $"shell input swipe 500 500 500 1000 {scrollDurationMs}",
    UseShellExecute = false,
    CreateNoWindow = true
};

ProcessStartInfo checkProcessStartInfo = new ProcessStartInfo
{
    FileName = adbPath,
    Arguments = "shell getevent -lt",
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true
};

while (true)
{
    project.SendInfoToLog("Выполняем прокрутку вверх...");
    using (Process scrollProcess = new Process())
    {
        scrollProcess.StartInfo = scrollProcessStartInfo;
        scrollProcess.Start();
        scrollProcess.WaitForExit();
    }

    bool reachedTop = false;
    using (Process checkProcess = new Process())
    {
        checkProcess.StartInfo = checkProcessStartInfo;
        checkProcess.Start();

        StreamReader reader = checkProcess.StandardOutput;
        string line;

        while ((line = reader.ReadLine()) != null)
        {
            // Обработка вывода для определения достижения верхней границы экрана
            if (line.Contains("ABS_MT_POSITION_Y") && line.Contains("value"))
            {
                // Используем регулярное выражение для поиска значения ABS_MT_POSITION_Y
                Match match = Regex.Match(line, @"value (\d+)");
                if (match.Success)
                {
                    int positionY = int.Parse(match.Groups[1].Value);
                    project.SendInfoToLog($"Значение ABS_MT_POSITION_Y: {positionY}");
                    if (positionY == 0)
                    {
                        project.SendInfoToLog("Верхняя граница экрана достигнута");
                        reachedTop = true;
                        break;
                    }
                }
            }
        }

        checkProcess.WaitForExit();
    }

    if (reachedTop)
    {
        break; // Выход из цикла, если достигнута верхняя граница экрана
    }

    project.SendInfoToLog("Пауза перед следующей прокруткой...");
    Thread.Sleep(1000);
}
прокрутка делается только 1 раз и потом зависает на втором цикле

я пробовал сделать через команду: adb shell dumpsys display и обработать ее вывод, но оказалось что на memu не меняется параметр: mDisplayHeight от слова "совсем", он всегда 0...
 
Последнее редактирование:

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
это команда определения размера экрана
Я нашел такой способ, но он корректно не работает:
C#:
string adbPath = @"C:\Program Files\ZennoLab\EN\ZennoDroid Pro\2.3.5.0\Progs\adb.exe";
int scrollDurationMs = 500;

ProcessStartInfo scrollProcessStartInfo = new ProcessStartInfo
{
    FileName = adbPath,
    Arguments = $"shell input swipe 500 500 500 1000 {scrollDurationMs}",
    UseShellExecute = false,
    CreateNoWindow = true
};

ProcessStartInfo checkProcessStartInfo = new ProcessStartInfo
{
    FileName = adbPath,
    Arguments = "shell getevent -lt",
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true
};

while (true)
{
    project.SendInfoToLog("Выполняем прокрутку вверх...");
    using (Process scrollProcess = new Process())
    {
        scrollProcess.StartInfo = scrollProcessStartInfo;
        scrollProcess.Start();
        scrollProcess.WaitForExit();
    }

    bool reachedTop = false;
    using (Process checkProcess = new Process())
    {
        checkProcess.StartInfo = checkProcessStartInfo;
        checkProcess.Start();

        StreamReader reader = checkProcess.StandardOutput;
        string line;

        while ((line = reader.ReadLine()) != null)
        {
            // Обработка вывода для определения достижения верхней границы экрана
            if (line.Contains("ABS_MT_POSITION_Y") && line.Contains("value"))
            {
                // Используем регулярное выражение для поиска значения ABS_MT_POSITION_Y
                Match match = Regex.Match(line, @"value (\d+)");
                if (match.Success)
                {
                    int positionY = int.Parse(match.Groups[1].Value);
                    project.SendInfoToLog($"Значение ABS_MT_POSITION_Y: {positionY}");
                    if (positionY == 0)
                    {
                        project.SendInfoToLog("Верхняя граница экрана достигнута");
                        reachedTop = true;
                        break;
                    }
                }
            }
        }

        checkProcess.WaitForExit();
    }

    if (reachedTop)
    {
        break; // Выход из цикла, если достигнута верхняя граница экрана
    }

    project.SendInfoToLog("Пауза перед следующей прокруткой...");
    Thread.Sleep(1000);
}
прокрутка делается только 1 раз и потом зависает на втором цикле

я пробовал сделать через команду: adb shell dumpsys display и обработать ее вывод, но оказалось что на memu не меняется параметр: mDisplayHeight от слова "совсем", он всегда 0...
Если у тебя есть четкие координаты то зачем пользоваться кодом который не подходит.
110145
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
378
Благодарностей
269
Баллы
63
project.SendInfoToLog("Верхняя граница экрана достигнута");
Вам нужно пролистать до верха экрана?
C#:
var driver = instance.DroidInstance.AppiumDriver;
driver.FindElementByUiAutomator("new UiScrollable(new UiSelector().scrollable(true)).scrollToBeginning(10)");
 
  • Спасибо
Реакции: artsmm

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
378
Благодарностей
269
Баллы
63
Такой вопрос 10-11 андройд работает номрально, а 13 что то не работает в дройде хотя через апиум напрямую проблем нет
Изображение не захватывает или какая-то другая проблема?
 

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
378
Благодарностей
269
Баллы
63
Appium захватывает картинку через MJPEG (можно включить на вкладке настроек, но это не рекомендуется)

Лучше выполните экшен c#
C#:
instance.DroidInstance.Input.Shell("settings put global scrcpy_encoder OMX.google.h264.encoder");
И попробуйте еще раз подключиться к девайсу.
 
  • Спасибо
Реакции: Cthutq899

Cthutq899

Client
Регистрация
03.09.2019
Сообщения
168
Благодарностей
45
Баллы
28
Appium захватывает картинку через MJPEG (можно включить на вкладке настроек, но это не рекомендуется)

Лучше выполните экшен c#
C#:
instance.DroidInstance.Input.Shell("settings put global scrcpy_encoder OMX.google.h264.encoder");
И попробуйте еще раз подключиться к девайсу.
Все помогло
 

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