2 место Автоматизация Android без посредников. Часть 1.

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
хоть тут и пишут по поводу "решения" вода кирилицы в теме - не нашёл его.
Nox эмулятор. Вводить русский не хочет. Через adb shell input text тоже только латиница проходит. Русские буквы никак не вводятся. даже как ???????

С этого сообщения не вводится текст.

Через cmd при команде adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'привет'
Выдаёт
Broadcasting: Intent { act=ADB_INPUT_TEXT (has extras) }
Broadcast completed: result=0
Есть решение ввода? желательно без использования буфера
 
Last edited:

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
хоть тут и пишут по поводу "решения" вода кирилицы в теме - не нашёл его.
Nox эмулятор. Вводить русский не хочет. Через adb shell input text тоже только латиница проходит. Русские буквы никак не вводятся. даже как ???????

С этого сообщения не вводится текст.

Через cmd при команде adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'привет'
Выдаёт


Есть решение ввода? желательно без использования буфера
 

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
хоть тут и пишут по поводу "решения" вода кирилицы в теме - не нашёл его.
Nox эмулятор. Вводить русский не хочет. Через adb shell input text тоже только латиница проходит. Русские буквы никак не вводятся. даже как ???????

С этого сообщения не вводится текст.

Через cmd при команде adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'привет'
Выдаёт


Есть решение ввода? желательно без использования буфера
ADB не работает на прямую с кириллицей
 

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
Если остались сомнения
Ты по факту хоть кому то помог тут или только умничать умеешь? Своими бесполезными ответами только тему засоряешь в стиле "я тут самый умный".
 
  • Thank you
Reactions: Ruhas

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
Ты по факту хоть кому то помог тут или только умничать умеешь? Своими бесполезными ответами только тему засоряешь в стиле "я тут самый умный".
все решения с чата. здесь есть все
 

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
Ты по факту хоть кому то помог тут или только умничать умеешь? Своими бесполезными ответами только тему засоряешь в стиле "я тут самый умный".
Просто одни находят другие ноют что здесь нет решения
 

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
am broadcast -a ADB_INPUT_TEXT тебе в помощь
 

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
93674
 

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
am broadcast -a ADB_INPUT_TEXT тебе в помощь
Я видел это решение. Я как раз и написал его в своём сообщении и какую ошибку выдаёт. Если есть конкретная подсказка - в чём дело - рад буду выслушать.
И на латиницу и на кириллицу ответ идентичен.
 

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
Я видел это решение. Я как раз и написал его в своём сообщении и какую ошибку выдаёт. Если есть конкретная подсказка - в чём дело - рад буду выслушать.
И на латиницу и на кириллицу ответ идентичен.
установи adb клавиатуру найди в этом чате код перевода кириллице в adb и проблема исчезнет сама по себе
 
  • Thank you
Reactions: loka23

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
установи adb клавиатуру найди в этом чате код перевода кириллице в adb и проблема исчезнет сама по себе
Установил https://github.com/senzhk/ADBKeyBoard apk в эмулятор - результат один и тот же.

Про перевод кириллицы в нужную кодировку речь? Если да - так и пробовал. А вот с adb клавиатурой интересно...

Это всё не воспроизводится. Одинаковая ошибка, о которой писал выше.
adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'privet'
adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'привет'
adb shell am broadcast -a ADB_INPUT_TEXT --es msg 'ÐÑивеÑ'
C#:
var a = project.Context["ADB"];
string text = project.Variables["Nazvanie"].Value; // в переменной Text значение - Заказ звонка технической поддержки
Encoding utf8 = Encoding.GetEncoding("ISO-8859-1");
Encoding win1251 = Encoding.GetEncoding("UTF-8");
byte[] utf8Bytes = win1251.GetBytes(text);
byte[] win1251Bytes = Encoding.Convert(utf8, win1251, utf8Bytes);
return win1251.GetString(win1251Bytes); // Результат: Ðаказ звонка ÑеÑниÑеÑкой поддеÑжки


a.Text(win1251.GetString(win1251Bytes)); //ввод текста
 
Last edited:

qweqwe5435

Client
Joined
Feb 12, 2017
Messages
77
Reaction score
39
Points
18
Установил https://github.com/senzhk/ADBKeyBoard apk в эмулятор - результат один и тот же.

Про перевод кириллицы в нужную кодировку речь? Если да - так и пробовал. А вот с adb клавиатурой интересно...

Это всё не воспроизводится. Одинаковая ошибка, о которой писал выше.


C#:
var a = project.Context["ADB"];
string text = project.Variables["Nazvanie"].Value; // в переменной Text значение - Заказ звонка технической поддержки
Encoding utf8 = Encoding.GetEncoding("ISO-8859-1");
Encoding win1251 = Encoding.GetEncoding("UTF-8");
byte[] utf8Bytes = win1251.GetBytes(text);
byte[] win1251Bytes = Encoding.Convert(utf8, win1251, utf8Bytes);
return win1251.GetString(win1251Bytes); // Результат: Ðаказ звонка ÑеÑниÑеÑкой поддеÑжки


a.Text(win1251.GetString(win1251Bytes)); //ввод текста
Прочитай раздел How to use, особенно пункт 1.1 и все заработает.
 

qweqwe5435

Client
Joined
Feb 12, 2017
Messages
77
Reaction score
39
Points
18
Парни, такая проблема:

Есть несколько телефонов одной модели, с которыми шаблон отлично работает.

Но тут я достал телефон другой модели и попытался запустить шаб с ним. Все комманды, которые не требуют дампа экрана отлично отрабатывают (типа ввод текста, тап по координатам, закрыть/открыть прилу). Но когда я хочу сделать клик по элементу (a.Click), то кубик уходит в ошибку. Я так понимаю где-то дамп не подтягивается или что это может быть? При этом в логе ничего не выводится. UIAutomator дамп экрана делает, элемент присутствует.
 
Last edited:

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
Прочитай раздел How to use, особенно пункт 1.1 и все заработает.
Клавиатуру включил сразу, да. По умолчанию как назначить её - не пойму.
А скрипт только переводит в base64 я так понял. Я пробую на латинице вначале ввести, а потом буду с кириллицей разбираться. Всё так же выдаёт ошибку о которой писал выше.
 

qweqwe5435

Client
Joined
Feb 12, 2017
Messages
77
Reaction score
39
Points
18
Клавиатуру включил сразу, да. По умолчанию как назначить её - не пойму.
А скрипт только переводит в base64 я так понял. Я пробую на латинице вначале ввести, а потом буду с кириллицей разбираться. Всё так же выдаёт ошибку о которой писал выше.
Тебе надо текст сконвертировать в base64 и отправить командой на adbkeyboard, он введет уже кириллицей.
Комманда для ввода a.Command("am broadcast -a ADB_INPUT_B64 --es msg '"текст в base64"'", true);
 

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
Тебе надо текст сконвертировать в base64 и отправить командой на adbkeyboard, он введет уже кириллицей.
Комманда для ввода a.Command("am broadcast -a ADB_INPUT_B64 --es msg '"текст в base64"'", true);
текст "привет".
adb shell am broadcast -a ADB_INPUT_B64 --es msg '0L/RgNC40LLQtdGC'

ошибка прежняя
Broadcasting: Intent { act=ADB_INPUT_B64 (has extras) }
Broadcast completed: result=0
 

qweqwe5435

Client
Joined
Feb 12, 2017
Messages
77
Reaction score
39
Points
18
текст "привет".
adb shell am broadcast -a ADB_INPUT_B64 --es msg '0L/RgNC40LLQtdGC'

ошибка прежняя
Клавиатуру активировал перед этим?
a.Command("ime set com.android.adbkeyboard/.AdbIME", true);
 
  • Thank you
Reactions: loka23

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
Чтобы не было ошибки, вводите текст через adb с помощью этого сниппета:


C#:
var sv = project.Variables["sv"].Value;
//sv это серийник устройства для многопотока вида 127.0.0.1:21521

ProcessStartInfo startInfo1 = new ProcessStartInfo();
startInfo1.FileName = "adb.exe";
startInfo1.Arguments = "-s "+sv+" shell am broadcast -a ADB_INPUT_TEXT --es msg 'ТУТ ВВОДИМЫЙ ТЕКСТ'";
startInfo1.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(startInfo1).WaitForExit();
Благодарю. проблема в этом была
 

Yurka

Client
Joined
May 27, 2021
Messages
16
Reaction score
2
Points
3
.
 
Last edited:

loka23

Client
Joined
Aug 2, 2019
Messages
134
Reaction score
10
Points
18
Ребят подскажите, вопрос с русским языком для adb решен? Ранее видел задавали, на решение не могу найти
решён. Обнови dll. У ТС в статье какой то есть.
 

Fog

Client
Joined
Apr 23, 2021
Messages
110
Reaction score
13
Points
18
как использую эти библиотеки кликнуть по координатам?
написал в общий код
public void ClickXY(string x, string y){
var receiver = new ConsoleOutputReceiver();
AdbClient.Instance.ExecuteRemoteCommand(String.Format(@"input tap {0} {1}", x, y), device, receiver);
}

в кубике С# написал
var a = project.Context["ADB"];
a.ClickXY("122","1048");

и не работает.
 

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28
как использую эти библиотеки кликнуть по координатам?
написал в общий код
public void ClickXY(string x, string y){
var receiver = new ConsoleOutputReceiver();
AdbClient.Instance.ExecuteRemoteCommand(String.Format(@"input tap {0} {1}", x, y), device, receiver);
}

в кубике С# написал
var a = project.Context["ADB"];
a.ClickXY("122","1048");

и не работает.
Не проще сделать так
a.Swipe("122 ", "1048 ", "122 ", "1048 ", "100")
 
Joined
Jul 21, 2021
Messages
78
Reaction score
30
Points
18
как использую эти библиотеки кликнуть по координатам?
написал в общий код
public void ClickXY(string x, string y){
var receiver = new ConsoleOutputReceiver();
AdbClient.Instance.ExecuteRemoteCommand(String.Format(@"input tap {0} {1}", x, y), device, receiver);
}

в кубике С# написал
var a = project.Context["ADB"];
a.ClickXY("122","1048");

и не работает.
Так работает
Code:
var a = project.Context["ADB"];
a.Command(String.Format("input tap {0} {1}", "532", "585"), false);
Context ADB > смотри первое сообщение автора темы.
 

Jack_Dream

Client
Joined
Dec 5, 2021
Messages
349
Reaction score
28
Points
28
Как правильно сделать чтобы при ошибке когда стает поток, мог запускаться следующий поток, сейчас след поток не стартует пишет нет свободных емуляторов
 
Joined
Jul 21, 2021
Messages
78
Reaction score
30
Points
18
Как правильно сделать чтобы при ошибке когда стает поток, мог запускаться следующий поток, сейчас след поток не стартует пишет нет свободных емуляторов
На красную ветку - сделай закрытие эмуля

старт нового, со списка. Запускается командой Adb по его номеру (я заранее эмули создаю)
 
  • Thank you
Reactions: Jack_Dream

Jack_Dream

Client
Joined
Dec 5, 2021
Messages
349
Reaction score
28
Points
28
Подскажите в чем может быть проблема, есть мессенжер, во время пролистывания переписки все четко работает, только появляется картинка или ссылка активная на екране, сразу перестет работать, зенка не видит ни кнопок в емуляторе ни поле ввода текста, пролистал дальше где нет картинок и ссылок снова работает, как это побороть можно?
 

orka13

Client
Joined
May 7, 2015
Messages
2,184
Reaction score
2,196
Points
113
Подскажите в чем может быть проблема, есть мессенжер, во время пролистывания переписки все четко работает, только появляется картинка или ссылка активная на екране, сразу перестет работать, зенка не видит ни кнопок в емуляторе ни поле ввода текста, пролистал дальше где нет картинок и ссылок снова работает, как это побороть можно?
встречал подобное:
https://4pda.to/forum/index.php?showtopic=383300&st=12360#entry104359207 :
И если XML-файл выгрузки слишком большой (допустим больше 100 Килобайт, это больше ~100 000 символов), то в ~80% случаев его XML будет будто обрезан, то есть только первые элементы дерева попадают в него, а остальное без текста в один блок сбрасывает как картинку. Пример, где часто ловлю крупные XML: работа с выдачей Google в Chrome браузере, там часто невидимые элементы тоже попадают в XML-файл, увеличивая его размер...
Вроде в зенодроиде обходят это, но я не проверял еще https://zennolab.atlassian.net/wiki/spaces/RU/pages/2151710722/ZennoDroid :
io.appium.uiautomator2.server для корректной работы с деревом элементов
 

Jack_Dream

Client
Joined
Dec 5, 2021
Messages
349
Reaction score
28
Points
28

Cthutq899

Client
Joined
Sep 3, 2019
Messages
168
Reaction score
45
Points
28

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)