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

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Не совсем понял. Если сделать "MEmuManage modifyvm MEmu --name New_name" то уже "MEmuConsole New_name" у меня не отрабатывает вообще. А "MEmuManage startvm New_name" выдает ошибку "VERR_FILE_NOT_FOUND"
"memuc start -n New_name" пишет, что запуск удачен, но ничего не происходит и не грузится.
 

Ashbe

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

Или как подключится, чтобы приложение не перезапускалось а продолжили с того момента, что есть
 
Последнее редактирование:

irving zisman

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

irving zisman

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

Или как подключится, чтобы приложение не перезапускалось а продолжили с того момента, что есть

Код:
cap.SetCapability("newCommandTimeout","30");
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));

На второй вопрос ответ в этом посте https://zennolab.com/discussion/threads/upravlenie-ljubymi-android-prilozhenijami-na-smartfone-iz-zp.33511/page-17#post-412491
 
  • Спасибо
Реакции: avtostopshik и Shytov

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Как остановить определенный сервер аппиум, если у меня их поднято два и более?
у меня сервак поднимается в батнике
Код:
start "Appium_server_1" /MIN cmd /k appium --address 192.168.100.100 --port 4723 --bootstrap-port 4724 --selendroid-port 8080 --chromedriver-port 9516 --local-timezone
Убить можно:
Код:
taskkill /F /T /FI "WINDOWTITLE eq Appium_server_1*"
Appium_server_1 - любое имя.
"WINDOWTITLE eq Appium_server_1*" - поиск регуляркой, "*" в конце на всякий случай поставить, я не тестил, но окно поднимается с заголовком "Appium_server_1 - бла бла бла"
 

irving zisman

Client
Регистрация
18.05.2017
Сообщения
225
Благодарностей
28
Баллы
28
у меня сервак поднимается в батнике
Код:
start "Appium_server_1" /MIN cmd /k appium --address 192.168.100.100 --port 4723 --bootstrap-port 4724 --selendroid-port 8080 --chromedriver-port 9516 --local-timezone
Убить можно:
Код:
taskkill /F /T /FI "WINDOWTITLE eq Appium_server_1*"
Appium_server_1 - любое имя.
"WINDOWTITLE eq Appium_server_1*" - поиск регуляркой, "*" в конце на всякий случай поставить, я не тестил, но окно поднимается с заголовком "Appium_server_1 - бла бла бла"
У меня в батнике запуска вообще путь прописан к ноду и к апиуму, и уже потом идет --address 192.168.100.100 --port 4723 --bootstrap-port 4724 --selendroid-port 8080 --chromedriver-port 9516 --local-timezone

Разобраться бы еще что это значит
Код:
start "Appium_server_1" /MIN cmd /k appium
 

Yuriy Zymlex

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

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Разобраться бы еще что это значит
Код:
start "Appium_server_1" /MIN cmd /k appium
у меня есть батник, который запускает и настраивает мему, а в конце он открыват отдельным окном аппиум с нужным заголовком, в свернутом режиме, не дожидаясь завершения
 

sw_sw

Client
Регистрация
24.02.2017
Сообщения
769
Благодарностей
307
Баллы
63
у меня есть батник, который запускает и настраивает мему, а в конце он открыват отдельным окном аппиум с нужным заголовком, в свернутом режиме, не дожидаясь завершения
Показывай! ))
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Что именно интересует? бытник много чего делает, что к теме не относится. Проверки файлов и т.д.
MEmuConsole MEmu - старт
memuc setconfig -n MEmu имя_параметра значение_параметра - меняет параметр нужный на нужное значение.
start "Appium_server_1" /MIN cmd /k appium --address 192.168.100.100 --port 4723 --bootstrap-port 4724 --selendroid-port 8080 --chromedriver-port 9516 --local-timezone - так в отдельном окне запускаю сервер
 
  • Спасибо
Реакции: Saavdav и sw_sw

kanfyti

Client
Регистрация
02.02.2019
Сообщения
3
Благодарностей
0
Баллы
1
Можете ли вы подсказать, как делать точный скролл в Appium? Т.е. чтобы скролило на определенную величину в пикселях.
 

afk

Client
Регистрация
28.11.2016
Сообщения
99
Благодарностей
25
Баллы
18
Можете ли вы подсказать, как делать точный скролл в Appium? Т.е. чтобы скролило на определенную величину в пикселях.
Такую операцию нужно делать свайпом (эмуляцией свайпа пальцем).

Пример:
int x1 = 200; // координаты стартовой и конечной точки по ширине
int y2 = 100; // координаты стартовой точки по высоте
int y1 = 800; // координаты конечной точки по высоте

driver.Swipe(x1,y2,x1,y1,1500);

Screenshot_1.png


В этом примере свайп выполнится по вертикали сверху-вниз
 
  • Спасибо
Реакции: kanfyti

kanfyti

Client
Регистрация
02.02.2019
Сообщения
3
Благодарностей
0
Баллы
1
Такую операцию нужно делать свайпом (эмуляцией свайпа пальцем).

Пример:
int x1 = 200; // координаты стартовой и конечной точки по ширине
int y2 = 100; // координаты стартовой точки по высоте
int y1 = 800; // координаты конечной точки по высоте

driver.Swipe(x1,y2,x1,y1,1500);

Посмотреть вложение 36456

В этом примере свайп выполнится по вертикали сверху-вниз
Да, спасибо. А если мне нужно свайпать на не целое число, то как обойтись? Пробывал через TouchAction, но там невозможно (по крайней мере мне так кажется) точно свайпать.
 

afk

Client
Регистрация
28.11.2016
Сообщения
99
Благодарностей
25
Баллы
18
Да, спасибо. А если мне нужно свайпать на не целое число, то как обойтись? Пробывал через TouchAction, но там невозможно (по крайней мере мне так кажется) точно свайпать.
Как понять, не на целое число?

Представь, что ты проводишь пальцем по координатах телефона. Это аналог этой операции.
Кстати, забыл добавить, что пятая переменная duration в этой перегрузке метода Swipe() - отвечает за скорость перемещения с координат startx, starty до координат endx,endy
Чем меньше duration - тем более резкий скролл произойдёт
 
  • Спасибо
Реакции: kanfyti

kanfyti

Client
Регистрация
02.02.2019
Сообщения
3
Благодарностей
0
Баллы
1
Как понять, не на целое число?

Представь, что ты проводишь пальцем по координатах телефона. Это аналог этой операции.
Кстати, забыл добавить, что пятая переменная duration в этой перегрузке метода Swipe() - отвечает за скорость перемещения с координат startx, starty до координат endx,endy
Чем меньше duration - тем более резкий скролл произойдёт
upload_2019-2-24_11-44-35.png


Только у меня почему-то вообще нет метода Swipe для driver
 

Shytov

Client
Регистрация
11.09.2018
Сообщения
175
Благодарностей
39
Баллы
28
Здравствуйте. Помогите разобраться пожалуйста, почему так происходит? Работаю с Samsung s6 Edge через кабель.
1. Когда запускаю приложение, оно открывается на минуту где-то, потом закрывается.
2. Приложение которое я вызываю, открывается разлогиненым. Даже если перед этим залогинется.
Код:
DesiredCapabilities cap = new DesiredCapabilities(); // экземпляр класса настроек
cap.SetCapability("deviceName", "Samsung s6 Edge"); // имя девайся (абсолютно любое)
cap.SetCapability("platformVersion", "7.0");// версия платформы (тоже любая)
cap.SetCapability("platformName", "Android");//имя платформы
cap.SetCapability("appPackage", "com.instagram.android"); // пространство имен используемое приложением
cap.SetCapability("appActivity", ".activity.MainTabActivity"); // активное окно

AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"), cap); // инициализируем экземпляр класса драйвера с настроечками
3. Когда я запускаю удаленно приложение, у меня не работает \android-sdk\tools\uiautomatorviewer.bat. При этом даже через cmd не получается сделать:
adb shell uiautomator dump
получаю
sh: resetreason: can't execute: Permission denied
Но после того как приложение закрывается, uiautomatorviewer.bat начинает кое как, через раз работать на главном экране.
У меня складывается впечатление что телефон нужно рутировать. Что скажете?

Код:
[Appium] Welcome to Appium v1.10.0
[Appium] Non-default server args:
[Appium] address: 127.0.0.1
[Appium] bootstrapPort: 4725
[Appium] localTimezone: true
[Appium] selendroidPort: 8082
[Appium] chromeDriverPort: 9516
[Appium] Appium REST http interface listener started on 127.0.0.1:4723
[HTTP] --> POST /wd/hub/session
[HTTP] {"desiredCapabilities":{"deviceName":"Samsung s6 Edge","platformVersion":"7.0","platformName":"Android","appPackage":"com.instagram.android","appActivity":".activity.MainTabActivity"}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{"deviceName":"Samsung s6 Edge","platformVersion":"7.0","platformName":"Android","appPackage":"com.instagram.android","appActivity":".activity.MainTabActivity"},null,null]
[BaseDriver] Event 'newSessionRequested' logged at 1551181104516 (13:38:24 GMT+0200 (Финляндия (зима)))
[Appium] Consider setting 'automationName' capability to 'UiAutomator2' on Android >= 6, since UIAutomator framework is not maintained anymore by the OS vendor.
[Appium] Creating new AndroidDriver (v4.8.0) session
[Appium] Capabilities:
[Appium] deviceName: Samsung s6 Edge
[Appium] platformVersion: 7.0
[Appium] platformName: Android
[Appium] appPackage: com.instagram.android
[Appium] appActivity: .activity.MainTabActivity
[BaseDriver] Creating session with MJSONWP desired capabilities: {"deviceName":"Samsung s6 E...
[BaseDriver] Session created with session id: 1b0c980f-7093-46eb-90d6-8c91180961a0
[AndroidDriver] Java version is: 1.8.0_191
[ADB] Checking whether adb is present
[ADB] Found 1 'build-tools' folders under 'C:\Program Files (x86)\Android\android-sdk' (newest first):
[ADB] C:/Program Files (x86)/Android/android-sdk/build-tools/28.0.3
[ADB] Using adb.exe from C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe
[AndroidDriver] Retrieving device list
[ADB] Trying to find a connected android device
[ADB] Getting connected devices...
[ADB] 1 device(s) connected
[AndroidDriver] Looking for a device with Android '7.0'
[ADB] Setting device id to 1015faca987c3a05
[ADB] Getting device platform version
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell getprop ro.build.version.release'
[ADB] Current device property 'ro.build.version.release': 7.0
[AndroidDriver] Using device: 1015faca987c3a05
[ADB] Setting device id to 1015faca987c3a05
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell getprop ro.build.version.sdk'
[ADB] Current device property 'ro.build.version.sdk': 24
[ADB] Device API level: 24
[AndroidDriver] Consider setting 'automationName' capability to 'uiautomator2' on Android >= 6, since UIAutomator framework is not maintained anymore by the OS vendor.
[AndroidDriver] App file was not listed, instead we're going to run com.instagram.android directly on the device
[AndroidDriver] Checking whether package is present on the device
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell pm list packages com.instagram.android'
[AndroidDriver] Starting Android session
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 wait-for-device'
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell echo ping'
[AndroidDriver] Pushing settings apk to device...
[ADB] Getting install status for io.appium.settings
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell dumpsys package io.appium.settings'
[ADB] 'io.appium.settings' is installed
[ADB] Getting package info for 'io.appium.settings'
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell dumpsys package io.appium.settings'
[ADB] Checking whether aapt is present
[ADB] Using aapt.exe from C:\Program Files (x86)\Android\android-sdk\build-tools\28.0.3\aapt.exe
[ADB] The version name of the installed 'io.appium.settings' is greater or equal to the application version name ('2.11.0' >= '2.11.0')
[ADB] There is no need to install/upgrade 'C:\Program Files (x86)\Appium\resources\app\node_modules\io.appium.settings\apks\settings_apk-debug.apk'
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell ps'
[ADB] Device API level: 24
[ADB] Device API level: 24
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell am start -W -n io.appium.settings/.Settings -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000'
[ADB] Device API level: 24
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell appops set io.appium.settings android\:mock_location allow'
[Logcat] Starting logcat capture
[ADB] Getting device platform version
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell getprop ro.build.version.release'
[ADB] Current device property 'ro.build.version.release': 7.0
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell wm size'
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell getprop ro.product.model'
[ADB] Current device property 'ro.product.model': SM-G925F
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell getprop ro.product.manufacturer'
[ADB] Current device property 'ro.product.manufacturer': samsung
[AndroidDriver] No app sent in, not parsing package/activity
[AndroidDriver] No app capability. Assuming it is already on the device
[ADB] Getting install status for com.instagram.android
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell dumpsys package com.instagram.android'
[ADB] 'com.instagram.android' is installed
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell am force-stop com.instagram.android'
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell pm clear com.instagram.android'
[AndroidDriver] Performed fast reset on the installed 'com.instagram.android' application (stop and clear)
[AndroidBootstrap] Watching for bootstrap disconnect
[ADB] Forwarding system: 4725 to device: 4724
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 forward tcp\:4725 tcp\:4724'
[UiAutomator] Starting UiAutomator
[UiAutomator] Moving to state 'starting'
[UiAutomator] Parsing uiautomator jar
[UiAutomator] Found jar name: 'AppiumBootstrap.jar'
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 push 'C:\\Program Files (x86)\\Appium\\resources\\app\\node_modules\\appium-android-driver\\bootstrap\\bin\\AppiumBootstrap.jar' /data/local/tmp/'
[ADB] Attempting to kill all uiautomator processes
[ADB] Getting all processes with uiautomator
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell ps'
[ADB] No 'uiautomator' process has been found
[UiAutomator] Starting UIAutomator
[ADB] Creating ADB subprocess with args: ["-P",5037,"-s","1015faca987c3a05","shell","uiautomator","runtest","AppiumBootstrap.jar","-c","io.appium.android.bootstrap.Bootstrap","-e","pkg","com.instagram.android","-e","disableAndroidWatchers",false,"-e","acceptSslCerts",false]
[UiAutomator] Moving to state 'online'
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Registered crash watchers.
[AndroidBootstrap] Android bootstrap socket is now connected
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell dumpsys window'
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Client connected
[AndroidDriver] Screen already unlocked, doing nothing
[ADB] Device API level: 24
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell am start -W -n com.instagram.android/.activity.MainTabActivity -S'
[Appium] New AndroidDriver session created successfully, session 1b0c980f-7093-46eb-90d6-8c91180961a0 added to master session list
[BaseDriver] Event 'newSessionStarted' logged at 1551181115521 (13:38:35 GMT+0200 (Финляндия (зима)))
[MJSONWP (1b0c980f)] Cached the protocol value 'MJSONWP' for the new session 1b0c980f-7093-46eb-90d6-8c91180961a0
[MJSONWP (1b0c980f)] Responding to client with driver.createSession() result: {"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"deviceName":"Samsung s6 Edge","platformVersion":"7.0","platformName":"Android","appPackage":"com.instagram.android","appActivity":".activity.MainTabActivity"},"deviceName":"1015faca987c3a05","platformVersion":"7.0","platformName":"Android","appPackage":"com.instagram.android","appActivity":".activity.MainTabActivity","deviceUDID":"1015faca987c3a05","deviceScreenSize":"1440x2560","deviceModel":"SM-G925F","deviceManufacturer":"samsung"}
[HTTP] <-- POST /wd/hub/session 200 10873 ms - 717
[HTTP]
[BaseDriver] Shutting down because we waited 60 seconds for a command
[AndroidDriver] Shutting down Android driver
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell am force-stop com.instagram.android'
[Appium] Closing session, cause was 'New Command Timeout of 60 seconds expired. Try customizing the timeout using the 'newCommandTimeout' desired capability'
[Appium] Removing session 1b0c980f-7093-46eb-90d6-8c91180961a0 from our master session list
[ADB] Pressing the HOME button
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell input keyevent 3'
[AndroidBootstrap] Sending command to android: {"cmd":"shutdown"}
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"shutdown"}
[AndroidBootstrap] Received command result from bootstrap
[UiAutomator] Shutting down UiAutomator
[UiAutomator] Moving to state 'stopping'
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type SHUTDOWN
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":"OK, shutting down"}
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Closed client connection
[AndroidBootstrap] [UIAUTO STDOUT] INSTRUMENTATION_STATUS: numtests=1
[AndroidBootstrap] [UIAUTO STDOUT] INSTRUMENTATION_STATUS: stream=.
[AndroidBootstrap] [UIAUTO STDOUT] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
[AndroidBootstrap] [UIAUTO STDOUT] INSTRUMENTATION_STATUS: test=testRunServer
[AndroidBootstrap] [UIAUTO STDOUT] INSTRUMENTATION_STATUS: class=io.appium.android.bootstrap.Bootstrap
[AndroidBootstrap] [UIAUTO STDOUT] INSTRUMENTATION_STATUS: current=1
[AndroidBootstrap] [UIAUTO STDOUT] INSTRUMENTATION_STATUS_CODE: 0
[UiAutomator] UiAutomator shut down normally
[UiAutomator] Moving to state 'stopped'
[ADB] Attempting to kill all uiautomator processes
[ADB] Getting all processes with uiautomator
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell ps'
[ADB] No 'uiautomator' process has been found
[UiAutomator] Moving to state 'stopped'
[Logcat] Stopping logcat capture
[ADB] Running 'C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -P 5037 -s 1015faca987c3a05 shell am force-stop io.appium.unlock'
[AndroidDriver] Not cleaning generated files. Add `clearSystemFiles` capability if wanted.

В логе видно что апиум ругается на старый uiautomatorviewer и просит накатить версию 2, но я не могу найти как его накатывать на винде.
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
1. Когда запускаю приложение, оно открывается на минуту где-то, потом закрывается.
2. Приложение которое я вызываю, открывается разлогиненым. Даже если перед этим залогинется.

Просмотрите эту страницу ветки и предыдущую (17)
 
  • Спасибо
Реакции: Shytov

Shytov

Client
Регистрация
11.09.2018
Сообщения
175
Благодарностей
39
Баллы
28
Спасибо, добрый человек
 

Shytov

Client
Регистрация
11.09.2018
Сообщения
175
Благодарностей
39
Баллы
28
Подскажите, как получить все значения в переменную или в таблицу? Использую
Код:
project.Variables["test"].Value = driver.FindElementByXPath("//android.widget.TextView[contains(@resource-id, 'mobi.chat:id/count_members')]").GetAttribute("text");
Но в переменную кладется только первое значение из 10ти. Знаю что есть FindElements, но подставлением буквы, проблема не решается. Понимаю что задача простая, но руки у меня кривые.
Код:
Есть десять таких вот блоков

<android.widget.LinearLayout>
    <android.widget.ImageView resource-id="mobi.chat:id/channel_icon">
    <android.widget.LinearLayout>
        <android.widget.TextView resource-id="mobi.chat:id/channel_name">
        <android.widget.TextView resource-id="mobi.chat:id/channel_permalink">
    <android.widget.TextView resource-id="mobi.chat:id/count_members">

<android.widget.LinearLayout>
    <android.widget.ImageView resource-id="mobi.chat:id/channel_icon">
    <android.widget.LinearLayout>
        <android.widget.TextView resource-id="mobi.chat:id/channel_name">
        <android.widget.TextView resource-id="mobi.chat:id/channel_permalink">
<android.widget.TextView resource-id="mobi.chat:id/count_members">
 

afk

Client
Регистрация
28.11.2016
Сообщения
99
Благодарностей
25
Баллы
18
Подскажите, как получить все значения в переменную или в таблицу? Использую
Код:
project.Variables["test"].Value = driver.FindElementByXPath("//android.widget.TextView[contains(@resource-id, 'mobi.chat:id/count_members')]").GetAttribute("text");
Но в переменную кладется только первое значение из 10ти. Знаю что есть FindElements, но подставлением буквы, проблема не решается. Понимаю что задача простая, но руки у меня кривые.
Код:
Есть десять таких вот блоков

<android.widget.LinearLayout>
    <android.widget.ImageView resource-id="mobi.chat:id/channel_icon">
    <android.widget.LinearLayout>
        <android.widget.TextView resource-id="mobi.chat:id/channel_name">
        <android.widget.TextView resource-id="mobi.chat:id/channel_permalink">
    <android.widget.TextView resource-id="mobi.chat:id/count_members">

<android.widget.LinearLayout>
    <android.widget.ImageView resource-id="mobi.chat:id/channel_icon">
    <android.widget.LinearLayout>
        <android.widget.TextView resource-id="mobi.chat:id/channel_name">
        <android.widget.TextView resource-id="mobi.chat:id/channel_permalink">
<android.widget.TextView resource-id="mobi.chat:id/count_members">

IZennoList listElements = project.Lists["Список 2"]; // создаём объект lstTest типа IZennoList и привязываем его к списку проекта
var elements = driver.FindElementsByXPath("//android.widget.TextView[contains(@resource-id, 'mobi.chat:id/count_members')]"); // ищем все совпадения и сохраняем их в переменную elements
foreach(string oneElement in elements) // делаем перебор коллекции
{
listElements.Add(oneElement.GetAttribute("text")); // добавляем каждый элемент в конец списка
}
 
  • Спасибо
Реакции: Shytov

Shytov

Client
Регистрация
11.09.2018
Сообщения
175
Благодарностей
39
Баллы
28
IZennoList listElements = project.Lists["Список 2"]; // создаём объект lstTest типа IZennoList и привязываем его к списку проекта
var elements = driver.FindElementsByXPath("//android.widget.TextView[contains(@resource-id, 'mobi.chat:id/count_members')]"); // ищем все совпадения и сохраняем их в переменную elements
foreach(string oneElement in elements) // делаем перебор коллекции
{
listElements.Add(oneElement.GetAttribute("text")); // добавляем каждый элемент в конец списка
}
Спасибо добрый человек, сейчас проверю
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Подскажите плиз. Есть прилага, запускается нормально, но вот дальше никакие поиски по элементам не работают. В других - всё норм.
Код:
adb shell uiautomator dump
adb pull /sdcard/window_dump.xml
Сохраняет в файл и элементы видны. Но через зенку->апиум никакие команды driver.FindElementsByXPath не отрабатывают
Могут ли как то разрабы ставить защиту, чтобы прилагой нельзя было программно управлять?

Код:
Тип    Время    Сообщение
    2019-03-09   19:03:28.490    Выполнение действия CSharp OwnCode The HTTP request to the remote WebDriver server for URL http://192.168.100.100:4723/wd/hub/session/258d8cfc-0363-4d6f-bef0-ba970f8dabe1/elements timed out after 60 seconds.
 
Последнее редактирование:

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Парни, помогите плиз) Другие прилаги всё гуд. Попалась одна, стартую как обычно, всё гуд. Но вот после старта поиск по элементам не работает. "adb shell uiautomator dump" элементы показывает. Но вот через драйвер в зенке никак. Более того, прилага отключила клаву и нужно ток кликать по кнопкам её клавы (а она свою перемешивает места цифр)
 

Shytov

Client
Регистрация
11.09.2018
Сообщения
175
Благодарностей
39
Баллы
28
Парни, помогите плиз) Другие прилаги всё гуд. Попалась одна, стартую как обычно, всё гуд. Но вот после старта поиск по элементам не работает. "adb shell uiautomator dump" элементы показывает. Но вот через драйвер в зенке никак. Более того, прилага отключила клаву и нужно ток кликать по кнопкам её клавы (а она свою перемешивает места цифр)
Ты банковскую прилу колупаешь?
 

Ashbe

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

radv

Client
Регистрация
11.05.2015
Сообщения
3 789
Благодарностей
1 954
Баллы
113

lustVVV

Client
Регистрация
19.06.2018
Сообщения
45
Благодарностей
33
Баллы
18
Спасибо за статью.
Написал на основе статьи реггер для 1 приложения, но возникла необходимость использования прокси.
Для этого выбрал приложение проксидроид, прописал настройки и начались проблемы...
1) Не сохраняются настройки при переходе от 1 приложения к другому. Т.е. первым кубиком настроили проксидроид, нажали кнопку включить. Переходим ко 2 кубику и все настройки проксидроида сбрасываются и никакого проксирования не идет.
2) После перехода ко 2 кубику, как только прописываем дейтсвие клика, шаблон вываливается в ошибку.
Код:
An unknown server-side error occurred while processing the command. Original error: Android bootstrap socket crashed: Error: This socket has been ended by the other party
 

Ashbe

Client
Регистрация
14.04.2016
Сообщения
55
Благодарностей
10
Баллы
8
Час от чесу не легче. Если приложение запретило делать скриншот экрана и "adb shell screencap -p /sdcard/screen.png" возвращает пустой экран, как это можно обойти?
 

gh969

Новичок
Регистрация
09.03.2019
Сообщения
19
Благодарностей
4
Баллы
3
1. Когда запускаю приложение, оно открывается на минуту где-то, потом закрывается.
2. Приложение которое я вызываю, открывается разлогиненым. Даже если перед этим залогинется.

Просмотрите эту страницу ветки и предыдущую (17)
плиз ткните носом где там решается эта проблема, всю тему перечитал уже
 

lustVVV

Client
Регистрация
19.06.2018
Сообщения
45
Благодарностей
33
Баллы
18
Спасибо за статью.
Написал на основе статьи реггер для 1 приложения, но возникла необходимость использования прокси.
Для этого выбрал приложение проксидроид, прописал настройки и начались проблемы...
1) Не сохраняются настройки при переходе от 1 приложения к другому. Т.е. первым кубиком настроили проксидроид, нажали кнопку включить. Переходим ко 2 кубику и все настройки проксидроида сбрасываются и никакого проксирования не идет.
2) После перехода ко 2 кубику, как только прописываем дейтсвие клика, шаблон вываливается в ошибку.
Код:
An unknown server-side error occurred while processing the command. Original error: Android bootstrap socket crashed: Error: This socket has been ended by the other party
Никак не получается... Пробовал добавлять cap.SetCapability("noReset", "True");, пытался открывать разыне приложения на разных портах, ничего не помогает. Подскажите в какую сторону капать?
 

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