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

Проверьте получение xml кода экрана, может там какие то нюансы есть, поэтому и не находит нужные элементы.
В том и суть что в этом плане там все в порядке, т.к другие телефоны находят, именно с этим проблема
 
В том и суть что в этом плане там все в порядке, т.к другие телефоны находят, именно с этим проблема
Может какой то нюанс с самим телефоном. Прогони его отдельно в проджике и посмотри где что сыпется добавь доп проверки
 
Почему я получаю постоянно ошибку при открытии любого скаченного приложения?
Screenshot_2.png
 
99245



И тот и другой пробовал, результат одинаковый, ошибка. Переустанавливал, ничего не помогает. Прилу качал через плей маркет, залогинившись через гугл. То есть создал эмуль, залогинился в гугле, скачал и установил прилу, запускаю и выдает ошибку.
 
Посмотреть вложение 99245


И тот и другой пробовал, результат одинаковый, ошибка. Переустанавливал, ничего не помогает. Прилу качал через плей маркет, залогинившись через гугл. То есть создал эмуль, залогинился в гугле, скачал и установил прилу, запускаю и выдает ошибку.
 

Вложения

  • Скриншот 07-11-2022 082301.jpg
    Скриншот 07-11-2022 082301.jpg
    189,3 KB · Просмотры: 223
  • Скриншот 07-11-2022 082316.jpg
    Скриншот 07-11-2022 082316.jpg
    108,7 KB · Просмотры: 214
  • Спасибо
Реакции: Dozer009 и andropovleva
99266
 
  • Спасибо
Реакции: andropovleva
99267
 
  • Спасибо
Реакции: andropovleva
Это работает! Спасибо! Как правильно найти приложение, что бы запускалось?

Допускаю что есть такой косяк у прил. Я сам старыми apk выкачанными с Маркета пользуюсь, только Нокс обновляю когда просит
 
  • Спасибо
Реакции: andropovleva
А есть более свежие статьи и на примере реального устройства?
 
  • Спасибо
Реакции: sambukanuka
Текст:
Развернуть Свернуть Копировать
var a = project.Context["ADB"];
a.Text("ZennoLab"); //ввод текста
a.KeyEvent("66"); //Enter

Как подставить переменную? Что бы брать текст с нее?
 
Текст:
Развернуть Свернуть Копировать
var a = project.Context["ADB"];
a.Text("ZennoLab"); //ввод текста
a.KeyEvent("66"); //Enter

Как подставить переменную? Что бы брать текст с нее?
var a = project.Context["ADB"];
string my_text = project.Variables["my_text"].Value;
a.Text(""+my_text+""); //ввод текста
a.KeyEvent("66"); //Enter
 
  • Спасибо
Реакции: diamlan
Подскажите в чем может быть проблема, есть мессенжер, во время пролистывания переписки все четко работает, только появляется картинка или ссылка активная на екране, сразу перестет работать, зенка не видит ни кнопок в емуляторе ни поле ввода текста, пролистал дальше где нет картинок и ссылок снова работает, как это побороть можно?
 
Подскажите в чем может быть проблема, есть мессенжер, во время пролистывания переписки все четко работает, только появляется картинка или ссылка активная на екране, сразу перестет работать, зенка не видит ни кнопок в емуляторе ни поле ввода текста, пролистал дальше где нет картинок и ссылок снова работает, как это побороть можно?
что за месенжер? при каких ситуациях теряется? много вариаций тут гадалок нет
 
Текст:
Развернуть Свернуть Копировать
var a = project.Context["ADB"];
a.Text("ZennoLab"); //ввод текста
a.KeyEvent("66"); //Enter

Как подставить переменную? Что бы брать текст с нее?
a.Text(project.Variables["имя переменной"].Value);
 
Подскажите, как изменить общий код, чтобы XML читался не из лога, а из файла дампа?
Проблема в том, что в консоли при выполнении команды
adb shell uiautomator dump /dev/tty
Получаю следующее:
Screenshot_1.png



Соответственно, методы Click, Parse с таким логом не работают
В остальном, всё в порядке, коннект есть, свайп и запуск приложения работают
uiautomator скрин дампит, здесь тоже всё ок
Если открыть сам файл дампа, то там всё корректно выглядит

В связи с этим,хотел бы узнать , как именно могу использовать файл, а не лог под методы, где требуется xml

Устройство Poco m5 на Android 12
Надеюсь, тему всё ещё читают :bc:Заранее спасибо
 
Удалось частично пофиксить вывод в лог командой
adb exec-out uiautomator dump /dev/tty
Теперь получаю следующее:
Screenshot_2.png


Однако, клик всё равно не работает. Думаю, из-за имеющихся ошибок над строкой с дампом
Добавление новой команды в общий код проблему так же не решило
Буду пробовать дальше. Если найду решение, скину сюда
 
Удалось частично пофиксить вывод в лог командой
adb exec-out uiautomator dump /dev/tty
Теперь получаю следующее:
Посмотреть вложение 101691


Однако, клик всё равно не работает. Думаю, из-за имеющихся ошибок над строкой с дампом
Добавление новой команды в общий код проблему так же не решило
Буду пробовать дальше. Если найду решение, скину сюда

По Xpath клик не работает из первого сообщения?
Телефон реальный, не эмулятор?
 
По Xpath клик не работает из первого сообщения?
Телефон реальный, не эмулятор?
Can't find element ошибку выдаёт. Проверял на двух телефонах. Андроид 11 и 12, на обоих miui 12. В файле с xml дампом всё нормально, вот пытаюсь понять, как поменять общий код так, чтобы xpath обрабатывал именно этот файл, а не лог
 
Can't find element ошибку выдаёт. Проверял на двух телефонах. Андроид 11 и 12, на обоих miui 12. В файле с xml дампом всё нормально, вот пытаюсь понять, как поменять общий код так, чтобы xpath обрабатывал именно этот файл, а не лог

Так понимаю элемента не видит. В личку написал
 
Так понимаю элемента не видит. В личку написал
Тоже интересно, т.к у меня была подобная ситуация, решилась понижением прошивки, т.к в android 10+ на xiaomi отсутствовал в меню для разработчиков пункт "проверять атрибуты элемента"
 
Подскажите как можно отслеживать трафик который идет через емуляторы?
 
Последнее редактирование:
Подскажите как можно отслеживать трафик который идет через емуляторы?
так же как и любой трафик через андроид. например установка сертификата фидлер и через него. но дело в том, что не весь трафик будет через хттп и некоторые прилы не хотят работать, если трафик пускать через фидлер и надо уже другие способы искать. нюансов много может быть.
 
  • Спасибо
Реакции: Jack_Dream
Подскажите) Вот у меня проблемка, в многопотоке все ок работает, но добавил функцию, перезагрузки емулятора на ходу, и получаеться когда емуль перезагрузился он работает нормально, но в случае если запустить еще 1 поток то этот емуль может взяться в новозапущеный поток, как такое пофиксить можно)? Тоесть после перезагрузки емулятора во время работы, зенка уже думает что он свободный, и при старте нового потока может взять этот емуль в работу(
 
зенка уже думает что он свободный, и при старте нового потока может взять этот емуль в работу(
ну так создайте список разрешенных/занятых устройств и используйте его
 

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