Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Кириллица в monkeyrunner


(Сергей Блохин) #1

Не работает ввод русских букв в monkeyrunner.
Кто-нить сталкивался с таким?
Нашёл аналогичный вопрос на SO

но и там нет решения.


(Mykhailo Poliarush) #2

а у тебя такое же поведение, как в описанном посте?

тут вообще надо бы еще кодировку установить на уровне файла # -- coding: utf-8 --

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

у тебя также? приложи варианты, что ты запускаешь и что получается в результате?


(Сергей Блохин) #3
# Ничего не происходит
device.type('Серёжа')

# Ничего не происходит
device.type(u'Серёжа')

# Ничего не происходит
device.type(unicode('Серёжа','cp1251'))

# Ничего не происходит
device.type(unicode('Серёжа','cp1251').encode('utf8'))

# Ничего не происходит
device.type(u"\u0410".encode('utf8'))

# Ничего не происходит
device.type("\xe2\x98\x83".decode('utf8'))

Если русский текст заменить на английский, то всё работает корректно.


(Mykhailo Poliarush) #4

значит это проблема именно в самом monkeyrunner, а не в кирилице
потому что должно вводиться хотя бы какие-то символы
мне кажется, где внутри есть дефект или же, нет поддержки юникода
я бы создал дефект на разработчиков, в данном случае


(Сергей Блохин) #5

Сам monkeyrunner написан на Java.
Он является интерпретатором python скриптов для себя.
Разработчик monkeyrunner — Google, которому всегда плевать на русскоговорящих разработчиков. :slight_smile:


(Mykhailo Poliarush) #6

весомый конечно аргумент :smile: , тогда я бы посоветовал открыть хороший редактор (pycharm или pydev) с подгрузкой модулей и уходить в дебаг, смотреть как передаются переменные между классами и методами. А там может быть и найдешь дефект

у самого нет настроенного окружения, потому помочь не могу


(Dmitry Cheremushkin) #7

Не работает ввод unicode-символов ни в adb, ни в monkeyrunner.

Возможное решение — использовать ADBKeyBoard как альтернативный ввод (https://github.com/senzhk/ADBKeyBoard).

Т.е. в итоге получится

device.shell("am broadcast -a ADB_INPUT_TEXT --es msg 'Серёжа'")