Ребят, всем привет! Выручите пожалуйста)
Имею связку Zennoposter + Appium для автоматизации андроид.
Как разбить по разным кубикам команды ADB через cmd. То есть отправили команду, получили результат, обработали и отправили новую команду соответственно в другом кубике.
Простые команды adb - это понятно, одним кубиком можно обойтись, но у меня все намного за мудренее. Целая программа для адроид которая управляется из командной строки.
Пример в первом кубике
adb shell + id устройства
su
props
А во втором уже отправляем команды из меню программы props.
Пример я нашел в https://zennolab.com/discussion/threads/kak-v-zenopostere-na-c-vypolnit-komandu-adb-shell-cp-folder1-folder2.103027/
Но как команды разбить на разные кубики ума не приложу(( помогите пожалуйста. Заранее всем огромное спасибо)
Имею связку Zennoposter + Appium для автоматизации андроид.
Как разбить по разным кубикам команды ADB через cmd. То есть отправили команду, получили результат, обработали и отправили новую команду соответственно в другом кубике.
Простые команды adb - это понятно, одним кубиком можно обойтись, но у меня все намного за мудренее. Целая программа для адроид которая управляется из командной строки.
Пример в первом кубике
adb shell + id устройства
su
props
А во втором уже отправляем команды из меню программы props.
Пример я нашел в https://zennolab.com/discussion/threads/kak-v-zenopostere-na-c-vypolnit-komandu-adb-shell-cp-folder1-folder2.103027/
C#:
string pathAdb = project.Variables["pathAdb"].Value; // путь к adb
Process cmd = new Process();
cmd.StartInfo = new ProcessStartInfo
{
FileName = $"cmd.exe",
CreateNoWindow = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Normal,
RedirectStandardInput = true,
RedirectStandardOutput = true,
};
cmd.Start();
//cmd.StandardInput.WriteLine($"cd {pathAdb}"); // переход в директорию с adb // пример нескольких команд
//Thread.Sleep(200);
cmd.StandardInput.WriteLine(string.Format(@"adb devices")); // запросить список активных устройств
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
string consoleResponse = cmd.StandardOutput.ReadToEnd().ToString(); // ответ от консоли
MatchCollection matchListDevices = Regex.Matches(consoleResponse, @"(?m)^emulator.+(?=[ ]+(device|offline))"); // получить коллекцию устройств
List<string> listDevices = matchListDevices.Cast<Match>().Select(match => match.Value).ToList();
string device = project.Variables["device"].Value = listDevices[0]; // вывести в переменную первое устройство для наглядности
cmd.Start();
cmd.StandardInput.WriteLine($"adb -s {device} shell getprop ro.build.version.sdk"); // запрос для получения версии sdk
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
return consoleResponse = cmd.StandardOutput.ReadToEnd().ToString(); // полный ответ из консоли. Дальше тоже можно очистить геруляркой и работать дальше