Zennoposter некорректно парсит данные с эмулятора Nox

vinznsk

Client
Регистрация
16.09.2014
Сообщения
96
Благодарностей
19
Баллы
8
Добрый день, коллеги!

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

В общем, задача - через зенку сделать парсинг данных в приложении Android. Приложение работает только на Android 9, так что пока не могу использовать ZennoDroid.

Благодаря вот этой статье, разобрался плюс-минус как работать с эмуляторами. Сделал парсинг, но возникла проблема: постоянно вылетает ошибка при парсинге элементов - Выполнение действия CSharp OwnCode: Can't find element.

Парсинг элементов делаю через XPath. Пробовал по названию типа
C#:
var a = project.Context["ADB"];
a.Click("//*[@content-desc = 'Confirm']", 0, 10); //XPath, Index, Секунды
пробовал через координаты

C#:
var a = project.Context["ADB"];
a.Click("//*[@bounds = '[326,1454][754,1541]']", 0, 10); //XPath, Index, Секунды
Все равно, 2-3 элемента скрипт нажимает, а далее часто вылетает ошибка выше.
Судя по всему, некорректно парсится XML, ну или я не знаю

Рабочим решением оказалось сделать через запуск adb.exe
C#:
Исполняемый файл: C:\Program Files (x86)\Nox\bin\adb.exe
Параметры запуска: shell input tap 392 259
Так все работает, НО... теперь у меня другая проблема. Конфликтуют потоки. Когда запускаю 2 эмулятора, оба на первом же шаге сбрасываются.

Вопрос

1. Можно ли как-нибудь решить проблему с ошибкой "Выполнение действия CSharp OwnCode: Can't find element." тогда я бы смог использовать решение уважаемого @WLDN в 2 и более потоков

Автоматизация Android без посредников. Часть 1.
2. Можно ли как-нибудь запускать action с разделением на потоки или с указанием IP:Port чтобы действие исполнялось на конкретном эмуляторе?


Спасибо!
 

baracuda

Client
Регистрация
19.06.2013
Сообщения
739
Благодарностей
251
Баллы
63
так обращайся к конкретному устройству. напиши в личку...
 
  • Спасибо
Реакции: vinznsk

radv

Client
Регистрация
11.05.2015
Сообщения
3 693
Благодарностей
1 871
Баллы
113
Сделал парсинг, но возникла проблема: постоянно вылетает ошибка при парсинге элементов - Выполнение действия CSharp OwnCode: Can't find element.
это он просто не находит элемент к которому обращаетесь. Он не прогрузился, или текст отличается, или атрибут. По кородинатам нет смысла искать, так как они могут отличаться (разрешение экрана исменится, верстка динамическая и сменится положение/размер элемента или еще какая причина. Может подключение теряется и код экрана не может получить или что то еще.
Для много потока используйте счетчик или имя устройства из списка в adb devices и обращайтесь к конкретному устройству.
 

vinznsk

Client
Регистрация
16.09.2014
Сообщения
96
Благодарностей
19
Баллы
8
всем спасибо, решил через

C#:
-s {-Variable.device-} shell input tap 392 259
Увы, по атрибутам пока не получается, не подгружаются элементы.
 

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