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

  • Спасибо
Реакции: artsmm
для проверки значения сделайте вывод в лог. увидите правильно формирует значение или нет.
можете мне в ТГ написать? не получается пройти этот момент. Нужна консультация ваша. По оплате в ТГ пообщаемся
 
Где найти мануал по работе? Конкретно интересует как правльно ловить пуш уведомления?
 
Очень печально..
Я Энтерпрайз отверткой уже наверное месяца 4 ковыряю чтобы проект свой воссоздать, что на постере сделан. И до этого у меня на обычном дройде для memu был хороший опыт. Т.е. не с нуля залез. А до этого сам еще телефоны ранее шил и рутил. И все равно много много месяцев чтобы более или менее чисто с постера перенести то, что и так известно как должно работать.

Тут ОЧЕНЬ высокий порог входа.
 
применить правильно 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);
}
 
  • Спасибо
Реакции: artsmm
110090

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


var droid = instance.DroidInstance;
var app = project.Variables["app_name"].Value;
var json = droid.App.GetAccounts(app);
project.Variables["accounts"].Value = json;
 
судя по всему нет.. разбираюсь как сделать. как его сделать для android 11 тел redmi 9a ?

пробовал с помощью kingoroot, пишет что рутирование не удалось
на 11 андройде 9а рут это пляски с бубном лучше на 10-й андройд перепрошей
 
а когда ждать испровления спциально ради проверки этой темы купил дройд на месяц. просто второй раз ради проверки покупать не хочется как его не купишь он валяется. Если эта тема рабочая тогда его стоит покупать если нет то даром не нужен
 
Работает) оч помогли) есть какая-либо возможность или отключить, или отслеживать обновления memu, чтобы делать паузу когда они происходят? как понос просто сваливаются и стопорят весь шаблон))
 
Работает) оч помогли) есть какая-либо возможность или отключить, или отслеживать обновления memu, чтобы делать паузу когда они происходят? как понос просто сваливаются и стопорят весь шаблон))
эмули только для тестов реалы рулят
 
Работает) оч помогли) есть какая-либо возможность или отключить, или отслеживать обновления memu, чтобы делать паузу когда они происходят? как понос просто сваливаются и стопорят весь шаблон))
какие именно обновления имеются введу эмулятора или самого мему
 
  • Спасибо
Реакции: artsmm
это команда определения размера экрана
Я нашел такой способ, но он корректно не работает:
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...
 
Последнее редактирование:
это команда определения размера экрана
Я нашел такой способ, но он корректно не работает:
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
 
project.SendInfoToLog("Верхняя граница экрана достигнута");
Вам нужно пролистать до верха экрана?
C#:
Развернуть Свернуть Копировать
var driver = instance.DroidInstance.AppiumDriver;
driver.FindElementByUiAutomator("new UiScrollable(new UiSelector().scrollable(true)).scrollToBeginning(10)");
 
  • Спасибо
Реакции: artsmm
Такой вопрос 10-11 андройд работает номрально, а 13 что то не работает в дройде хотя через апиум напрямую проблем нет
Изображение не захватывает или какая-то другая проблема?
 
Appium захватывает картинку через MJPEG (можно включить на вкладке настроек, но это не рекомендуется)

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

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

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