4 место Управление любыми Android приложениями на смартфоне из ZP

Всем привет. Делаю всё по инструкции из стартового топика, но в cmd через запрос устройств не вижу свой телефон (List of devices attached).
- отладка через usb включена на телефоне.
- VID устройства добавил в файл adb_usb.ini в папке .android вот так:

Код:
Развернуть Свернуть Копировать
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x0E8D


В чём может быть проблема?
 
Подскажите, как продолжить код в другом кубике c#? Приложение запущено, пытался открыть по новому названию активити, все равно приложение запускается заново
 
Разобрался, нужно было в конце первого кубика вставить project.Context["drv"]= driver; , в том посте об этом не сказано ничего.

Получается так, что бы продолжить выполнение в другом кубике, в первом должны присутствовать эти строки
Код:
Развернуть Свернуть Копировать
AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://127.0.0.1:"+project.Variables["port_appium"].Value+"/wd/hub"), cap); // инициализируем экземпляр класса драйвера с настроечками
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
и еще эта строка в конце первого
Код:
Развернуть Свернуть Копировать
project.Context["drv"]= driver;
Далее в начале второго это
Код:
Развернуть Свернуть Копировать
var driver = project.Context["drv"];
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(100));
и свой код далее
 
Последнее редактирование:
Кто знает, что за ерунда? апиум 1.10. Запускаю сервак. Запускаю эмулятор. Выполняю
Код:
Развернуть Свернуть Копировать
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability("deviceName", "Insta");
cap.SetCapability("platformVersion", "7.1.2");
cap.SetCapability("platform", "Android");
cap.SetCapability("platformName", "Android");
cap.SetCapability("appPackage", "com.ishook.inc.ychat");
cap.SetCapability("appActivity", ".activitys.LoginActivity");

AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://192.168.100.100:4723/wd/hub"), cap);


System.Threading.Thread.Sleep(10000);
driver.FindElementsByXPath("//android.widget.Button[contains(@resource-id, 'btnlogin')]").First().Click();
https://www.screencast.com/t/K5i75FHsaaY3
YpsfUzUQvz


Конектится, запускает прилагу и всё. Клики не производит, как не пробывал. Поиск по элементом не может произвести.
https://www.screencast.com/t/Hp61wnZQE4D
Hp61wnZQE4D
 
И еще вопрос, почему запуск производит и каждый раз требует разрешения, которые прилага запрашивает. Хотя при запуске руками, просто грузится прилага как обычно.
 
Снимаю вопрос первый. Это именно с определенным приложением такой косяк, с остальными работает. Оч странно

Кто сталкивался с таким, что в опред прилаге не проходят такие манипуляции
 
Последнее редактирование:
Вообщем, насколько я понимаю, проблема в том, что у прилаги несколько активити. Начальный можно узнать:
Код:
Развернуть Свернуть Копировать
Перейти в каталог c:\Android\sdk\build-tools\25.0.2 где лежит aapt.exe
adb shell pm list packages -f
adb pull путь из списка до APK, до =
aapt dump badging base.apk

А как работать с прилагой, если у нее стартовая активити одна, а уже после загрузки ативна другая?
 
Кто знает, что за ерунда? апиум 1.10. Запускаю сервак. Запускаю эмулятор. Выполняю
Код:
Развернуть Свернуть Копировать
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability("deviceName", "Insta");
cap.SetCapability("platformVersion", "7.1.2");
cap.SetCapability("platform", "Android");
cap.SetCapability("platformName", "Android");
cap.SetCapability("appPackage", "com.ishook.inc.ychat");
cap.SetCapability("appActivity", ".activitys.LoginActivity");

AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://192.168.100.100:4723/wd/hub"), cap);


System.Threading.Thread.Sleep(10000);
driver.FindElementsByXPath("//android.widget.Button[contains(@resource-id, 'btnlogin')]").Click();
https://www.screencast.com/t/K5i75FHsaaY3
YpsfUzUQvz


Конектится, запускает прилагу и всё. Клики не производит, как не пробывал. Поиск по элементом не может произвести.
https://www.screencast.com/t/Hp61wnZQE4D
Hp61wnZQE4D
Кто знает, что за ерунда? апиум 1.10. Запускаю сервак. Запускаю эмулятор. Выполняю
Код:
Развернуть Свернуть Копировать
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability("deviceName", "Insta");
cap.SetCapability("platformVersion", "7.1.2");
cap.SetCapability("platform", "Android");
cap.SetCapability("platformName", "Android");
cap.SetCapability("appPackage", "com.ishook.inc.ychat");
cap.SetCapability("appActivity", ".activitys.LoginActivity");

AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://192.168.100.100:4723/wd/hub"), cap);


System.Threading.Thread.Sleep(10000);
driver.FindElementsByXPath("//android.widget.Button[contains(@resource-id, 'btnlogin')]").First().Click();
https://www.screencast.com/t/K5i75FHsaaY3
YpsfUzUQvz


Конектится, запускает прилагу и всё. Клики не производит, как не пробывал. Поиск по элементом не может произвести.
https://www.screencast.com/t/Hp61wnZQE4D
Hp61wnZQE4D

driver.FindElementsByXPath("//android.widget.Button[contains(@resource-id, 'btnlogin')]").Click();
 
driver.FindElementsByXPath("//android.widget.Button[contains(@resource-id, 'btnlogin')]").Click();
не, в примере просто не поправил, это от безысходности тыкал всё что мог. В других прилагах отрабатывает, но в энужной нет(
 
  • Спасибо
Реакции: Valek_333
Немного уточню вопрос. Приложение запрашивает права на камеру, контакты и т.д. Из-за этого, каждый раз, если стартовать из зенки - каждый раз выскакивает запрос на эти разрешения. При старте руками, этого не происходит (только при первом запуске после установки). Возможно из-за неверного старта, дальше уже доступа к элементам не выходит получить. На той же машине, с другим приложением, всё хорошо работает. Может кто подскажет, как стартовать по другому такое приложение?

Код:
Развернуть Свернуть Копировать
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability("deviceName", "Insta");
cap.SetCapability("platformVersion", "7.1.2");
cap.SetCapability("platformName", "Android");
cap.SetCapability("appPackage", "com.ishook.inc.ychat");
cap.SetCapability("appActivity", "com.ishook.inc.ychat.activitys.SplashScreen");
AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://192.168.100.100:4723/wd/hub"), cap);
 
Меняй активити.
Это уже пробовал.
cap.SetCapability("appActivity", "com.ishook.inc.ychat.activitys.SplashScreen"); - Эта заставка, что стартует
cap.SetCapability("appActivity", "com.ishook.inc.ychat.activitys.LoginActivity"); - это то, что после заставки открывается логин

Можно ли как-то подключится к уже открытому окну?
 
Немного уточню вопрос. Приложение запрашивает права на камеру, контакты и т.д. Из-за этого, каждый раз, если стартовать из зенки - каждый раз выскакивает запрос на эти разрешения. При старте руками, этого не происходит (только при первом запуске после установки). Возможно из-за неверного старта, дальше уже доступа к элементам не выходит получить. На той же машине, с другим приложением, всё хорошо работает. Может кто подскажет, как стартовать по другому такое приложение?

Код:
Развернуть Свернуть Копировать
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability("deviceName", "Insta");
cap.SetCapability("platformVersion", "7.1.2");
cap.SetCapability("platformName", "Android");
cap.SetCapability("appPackage", "com.ishook.inc.ychat");
cap.SetCapability("appActivity", "com.ishook.inc.ychat.activitys.SplashScreen");
AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://192.168.100.100:4723/wd/hub"), cap);

Все знают, но это заговор против тебя.
Я подскажу, хотя меня и накажут =)

appiumOptions.AddAdditionalCapability("noReset", "True");

Ну а в твоем случае ..

cap.SetCapability("noReset", "True");

;-)
 
Все знают, но это заговор против тебя.
Я подскажу, хотя меня и накажут =)

appiumOptions.AddAdditionalCapability("noReset", "True");

Ну а в твоем случае ..

cap.SetCapability("noReset", "True");

;-)

Спасибо, полезная информация, я этот момент по другому обходил:

1. Запускал настройки
2. Нажимал "меню"
3. Запускал приложение с меню кликом )
 
Кстати кто в курсе, что нужно подключить что бы был параметр
Код:
Развернуть Свернуть Копировать
driver.ToggleAirplaneMode();
??
Есть только
Код:
Развернуть Свернуть Копировать
driver.ToggleLocationServices();
 
Все знают, но это заговор против тебя.
Я подскажу, хотя меня и накажут =)

appiumOptions.AddAdditionalCapability("noReset", "True");

Ну а в твоем случае ..

cap.SetCapability("noReset", "True");

;-)
Спасибо большое!

Кто подскажет как поставить прокси на MEmu? proxifier на процессы "memu.exe; memuconsole.exe; memupush.exe; memurepair.exe; memuservice.exe; memuupdate.exe; screenrecord.exe; memuservice.exe; memuc.exe; memuc.exe" результата не дает. В настройках WiFi в эмуляторе, я так понимаю мало толку, это работает только в браузере.
Кручу верчу не могу понять.
 
Спасибо большое!

Кто подскажет как поставить прокси на MEmu? proxifier на процессы "memu.exe; memuconsole.exe; memupush.exe; memurepair.exe; memuservice.exe; memuupdate.exe; screenrecord.exe; memuservice.exe; memuc.exe; memuc.exe" результата не дает. В настройках WiFi в эмуляторе, я так понимаю мало толку, это работает только в браузере.
Кручу верчу не могу понять.
папка MEmuHyperv, файл MEmuHeadless.exe надо проксировать, вроде бы его достаточно
 
  • Спасибо
Реакции: Ashbe
Кто знает, почему сервер поднимается только на порту 4723 ? Как запустить другом?
 
папка MEmuHyperv, файл MEmuHeadless.exe надо проксировать, вроде бы его достаточно
Спасибо! вроде работает

Может кто подсказать почему "MEmuManage startvm MEmu" выдает ошибку "VERR_FILE_NOT_FOUND"?
В общем, как запустить мему и отследить её загрузку. "MEmuConsole MEmu" работает, но она совсем не разговаривает в логе, а просто отрабатывает и все. Или загрузку уже только как-то через adb чекать, пока не не появится активный девайс?
 
Вы установили Appium Desktop ? Или через nodejs?
Поставил отдельно аппиум, отдельно скачал node и все завелось, поднимается теперь на любом порту. Запускаю через батник таким образом:
Код:
Развернуть Свернуть Копировать
"C:/Users/server/Desktop/Mobile/data/node 11.10.0/node.exe" "C:/Program Files (x86)/Appium/resources/app/node_modules/appium/build/lib/main.js" --address 127.0.0.1 --chromedriver-port 6006 --bootstrap-port 2296 --selendroid-port 8082 --no-reset --local-timezone -U 420023039aab3400  -p 4723 // -p 4723 порт на котором нужно запустить аппиум
 
  • Спасибо
Реакции: lustVVV
Поставил отдельно аппиум, отдельно скачал node и все завелось, поднимается теперь на любом порту. Запускаю через батник таким образом:
Код:
Развернуть Свернуть Копировать
"C:/Users/server/Desktop/Mobile/data/node 11.10.0/node.exe" "C:/Program Files (x86)/Appium/resources/app/node_modules/appium/build/lib/main.js" --address 127.0.0.1 --chromedriver-port 6006 --bootstrap-port 2296 --selendroid-port 8082 --no-reset --local-timezone -U 420023039aab3400  -p 4723 // -p 4723 порт на котором нужно запустить аппиум
https://appium.io/docs/en/writing-running-appium/server-args/
параметры командной строки. параметр -U вроде уже не действует
 
  • Спасибо
Реакции: bas2006
Ты про какой именно порт? Я пока не пойму какой для чего (не считая порта для апиума), поэтому поставил везде разные

Код:
Развернуть Свернуть Копировать
"C:/Users/server/Desktop/Mobile/data/node 11.10.0/node.exe" "C:/Program Files (x86)/Appium/resources/app/node_modules/appium/build/lib/main.js" --address 127.0.0.1 --chromedriver-port 9516 --bootstrap-port 4725 --selendroid-port 8082 --no-reset --local-timezone -U HA0QGWZT -p 4724
"C:/Users/server/Desktop/Mobile/data/node 11.10.0/node.exe" "C:/Program Files (x86)/Appium/resources/app/node_modules/appium/build/lib/main.js" --address 127.0.0.1 --chromedriver-port 6006 --bootstrap-port 2296 --selendroid-port 8082 --no-reset --local-timezone -U 420023039aab3400  -p 4723
 
Интимный вопрос. Как изменить имя машины?) "MEmuManage modifyvm MEmu --name New_name" меняет то, но дальше уже её запустить не выходит
 

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