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

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
227
Благодарностей
202
Баллы
43
Всем привет. Делаю всё по инструкции из стартового топика, но в 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

В чём может быть проблема?
 

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
Подскажите, как продолжить код в другом кубике c#? Приложение запущено, пытался открыть по новому названию активити, все равно приложение запускается заново
 

SteveJobs

Client
Регистрация
03.11.2016
Сообщения
283
Благодарностей
30
Баллы
28

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
Разобрался, нужно было в конце первого кубика вставить 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));
и свой код далее
 
Последнее редактирование:

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Кто знает, что за ерунда? апиум 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


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

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
И еще вопрос, почему запуск производит и каждый раз требует разрешения, которые прилага запрашивает. Хотя при запуске руками, просто грузится прилага как обычно.
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Снимаю вопрос первый. Это именно с определенным приложением такой косяк, с остальными работает. Оч странно

Кто сталкивался с таким, что в опред прилаге не проходят такие манипуляции
 
Последнее редактирование:

Ashbe

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

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
Кто знает, что за ерунда? апиум 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


Конектится, запускает прилагу и всё. Клики не производит, как не пробывал. Поиск по элементом не может произвести.
https://www.screencast.com/t/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


Конектится, запускает прилагу и всё. Клики не производит, как не пробывал. Поиск по элементом не может произвести.
https://www.screencast.com/t/Hp61wnZQE4D
driver.FindElementsByXPath("//android.widget.Button[contains(@resource-id, 'btnlogin')]").Click();
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
driver.FindElementsByXPath("//android.widget.Button[contains(@resource-id, 'btnlogin')]").Click();
не, в примере просто не поправил, это от безысходности тыкал всё что мог. В других прилагах отрабатывает, но в энужной нет(
 
  • Спасибо
Реакции: Valek_333

Ashbe

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

Код:
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);
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Меняй активити.
Это уже пробовал.
cap.SetCapability("appActivity", "com.ishook.inc.ychat.activitys.SplashScreen"); - Эта заставка, что стартует
cap.SetCapability("appActivity", "com.ishook.inc.ychat.activitys.LoginActivity"); - это то, что после заставки открывается логин

Можно ли как-то подключится к уже открытому окну?
 

sw_sw

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

Код:
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");

;-)
 

afk

Client
Регистрация
28.11.2016
Сообщения
99
Благодарностей
25
Баллы
18
Все знают, но это заговор против тебя.
Я подскажу, хотя меня и накажут =)

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

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

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

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

1. Запускал настройки
2. Нажимал "меню"
3. Запускал приложение с меню кликом )
 

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
Кстати кто в курсе, что нужно подключить что бы был параметр
Код:
driver.ToggleAirplaneMode();
??
Есть только
Код:
driver.ToggleLocationServices();
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Все знают, но это заговор против тебя.
Я подскажу, хотя меня и накажут =)

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 в эмуляторе, я так понимаю мало толку, это работает только в браузере.
Кручу верчу не могу понять.
 

nole

Client
Регистрация
19.11.2010
Сообщения
368
Благодарностей
213
Баллы
43
Спасибо большое!

Кто подскажет как поставить прокси на 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

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
Кто знает, почему сервер поднимается только на порту 4723 ? Как запустить другом?
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
папка MEmuHyperv, файл MEmuHeadless.exe надо проксировать, вроде бы его достаточно
Спасибо! вроде работает

Может кто подсказать почему "MEmuManage startvm MEmu" выдает ошибку "VERR_FILE_NOT_FOUND"?
В общем, как запустить мему и отследить её загрузку. "MEmuConsole MEmu" работает, но она совсем не разговаривает в логе, а просто отрабатывает и все. Или загрузку уже только как-то через adb чекать, пока не не появится активный девайс?
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
Вы установили 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

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Поставил отдельно аппиум, отдельно скачал 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 вроде уже не действует
 

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
  • Спасибо
Реакции: bas2006

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8

irving zisman

Client
Регистрация
18.05.2017
Сообщения
224
Благодарностей
28
Баллы
28
Ты про какой именно порт? Я пока не пойму какой для чего (не считая порта для апиума), поэтому поставил везде разные

Код:
"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
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Интимный вопрос. Как изменить имя машины?) "MEmuManage modifyvm MEmu --name New_name" меняет то, но дальше уже её запустить не выходит
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 352
Благодарностей
3 279
Баллы
113

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