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

Не совсем понял. Если сделать "MEmuManage modifyvm MEmu --name New_name" то уже "MEmuConsole New_name" у меня не отрабатывает вообще. А "MEmuManage startvm New_name" выдает ошибку "VERR_FILE_NOT_FOUND"
"memuc start -n New_name" пишет, что запуск удачен, но ничего не происходит и не грузится.
 
Подскажите, как увеличь время, после которого прилагу appium закрывает и разрывает связь?

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

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


Код:
Развернуть Свернуть Копировать
cap.SetCapability("newCommandTimeout","30");
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));


На второй вопрос ответ в этом посте https://zennolab.com/discussion/thr...-na-smartfone-iz-zp.33511/page-17#post-412491
 
  • Спасибо
Реакции: avtostopshik и Shytov
Как остановить определенный сервер аппиум, если у меня их поднято два и более?
у меня сервак поднимается в батнике
Код:
Развернуть Свернуть Копировать
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 - бла бла бла"
 
у меня сервак поднимается в батнике
Код:
Развернуть Свернуть Копировать
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
 
Разобраться бы еще что это значит
Код:
Развернуть Свернуть Копировать
start "Appium_server_1" /MIN cmd /k appium
у меня есть батник, который запускает и настраивает мему, а в конце он открыват отдельным окном аппиум с нужным заголовком, в свернутом режиме, не дожидаясь завершения
 
у меня есть батник, который запускает и настраивает мему, а в конце он открыват отдельным окном аппиум с нужным заголовком, в свернутом режиме, не дожидаясь завершения
Показывай! ))
 
Что именно интересует? бытник много чего делает, что к теме не относится. Проверки файлов и т.д.
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
Можете ли вы подсказать, как делать точный скролл в Appium? Т.е. чтобы скролило на определенную величину в пикселях.
 
Можете ли вы подсказать, как делать точный скролл в Appium? Т.е. чтобы скролило на определенную величину в пикселях.

Такую операцию нужно делать свайпом (эмуляцией свайпа пальцем).

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

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

Screenshot_1.png


В этом примере свайп выполнится по вертикали сверху-вниз
 
  • Спасибо
Реакции: kanfyti
Такую операцию нужно делать свайпом (эмуляцией свайпа пальцем).

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

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

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

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

Как понять, не на целое число?

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

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


Только у меня почему-то вообще нет метода Swipe для driver
 
Здравствуйте. Помогите разобраться пожалуйста, почему так происходит? Работаю с 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 начинает кое как, через раз работать на главном экране.
У меня складывается впечатление что телефон нужно рутировать. Что скажете?
image.png

Код:
Развернуть Свернуть Копировать
[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, но я не могу найти как его накатывать на винде.
 
1. Когда запускаю приложение, оно открывается на минуту где-то, потом закрывается.
2. Приложение которое я вызываю, открывается разлогиненым. Даже если перед этим залогинется.

Просмотрите эту страницу ветки и предыдущую (17)
 
  • Спасибо
Реакции: Shytov
Спасибо, добрый человек
 
Подскажите, как получить все значения в переменную или в таблицу? Использую
Код:
Развернуть Свернуть Копировать
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">
 
Подскажите, как получить все значения в переменную или в таблицу? Использую
Код:
Развернуть Свернуть Копировать
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
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")); // добавляем каждый элемент в конец списка
}
Спасибо добрый человек, сейчас проверю
 
Подскажите плиз. Есть прилага, запускается нормально, но вот дальше никакие поиски по элементам не работают. В других - всё норм.
Код:
Развернуть Свернуть Копировать
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.
 
Последнее редактирование:
Парни, помогите плиз) Другие прилаги всё гуд. Попалась одна, стартую как обычно, всё гуд. Но вот после старта поиск по элементам не работает. "adb shell uiautomator dump" элементы показывает. Но вот через драйвер в зенке никак. Более того, прилага отключила клаву и нужно ток кликать по кнопкам её клавы (а она свою перемешивает места цифр)
 
Парни, помогите плиз) Другие прилаги всё гуд. Попалась одна, стартую как обычно, всё гуд. Но вот после старта поиск по элементам не работает. "adb shell uiautomator dump" элементы показывает. Но вот через драйвер в зенке никак. Более того, прилага отключила клаву и нужно ток кликать по кнопкам её клавы (а она свою перемешивает места цифр)
Ты банковскую прилу колупаешь?
 
Спасибо за статью.
Написал на основе статьи реггер для 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
 
Час от чесу не легче. Если приложение запретило делать скриншот экрана и "adb shell screencap -p /sdcard/screen.png" возвращает пустой экран, как это можно обойти?
 
1. Когда запускаю приложение, оно открывается на минуту где-то, потом закрывается.
2. Приложение которое я вызываю, открывается разлогиненым. Даже если перед этим залогинется.

Просмотрите эту страницу ветки и предыдущую (17)

плиз ткните носом где там решается эта проблема, всю тему перечитал уже
 
Спасибо за статью.
Написал на основе статьи реггер для 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");, пытался открывать разыне приложения на разных портах, ничего не помогает. Подскажите в какую сторону капать?
 

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