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

Привет, как сохранить капчу на ПК?
 
Последнее редактирование:
Привет, как сохранить капчу на ПК?
У меня такой способ.
1.Получаем через adb скрин экрана:
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png D:\Dropbox\ZennoPoster\Project\Aliexpress_qr_tel_shop
adb shell rm /sdcard/screen.png
2.Обработка изображений->обрезка, там опытным путем или измеряем кусок картинки с капчей и сохраняем в другой файл уже готовую капчу
c095ce26ab81t.jpg

3.Через C# отправляем капчу(файл с картинкой):
Код:
Развернуть Свернуть Копировать
var captha_tel = project.Variables["captha_tel"].Value;
var image = System.Drawing.Image.FromFile("D:\\Dropbox\\ZennoPoster\\Project\\Aliexpress_qr_tel_shop\\captcha.png");
string base64String = String.Empty;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
    byte[] imageBytes = ms.ToArray();
    base64String = Convert.ToBase64String(imageBytes);
}
var result = ZennoPoster.CaptchaRecognition("Rucaptcha.dll", base64String, "");
// отрезаем лишнее
var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
if (tmp.Length > 1) return tmp[0];
return result;
 
  • Спасибо
Реакции: irving zisman
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png D:\Dropbox\ZennoPoster\Project\Aliexpress_qr_tel_shop
adb shell rm /sdcard/screen.png

А эти строки прописаны в одном снипете вместе с командами управления телом?
 
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png D:\Dropbox\ZennoPoster\Project\Aliexpress_qr_tel_shop
adb shell rm /sdcard/screen.png

А эти строки прописаны в одном снипете вместе с командами управления телом?
нет, в батнике-мне так удобнее
 
Ок, но допустим я запустил снипет управления телом, дошел до разгадывания капчи, разгадал, получил ответ, но как мне потом вернутся опять к управлению телом? этого не могу понять
 
снипет управления телом отработал и я не могу опять вернутся на этап разгадывания капчи
 
Ок, но допустим я запустил снипет управления телом, дошел до разгадывания капчи, разгадал, получил ответ, но как мне потом вернутся опять к управлению телом? этого не могу понять
Проверку на капчу можно сделать через if else
Код:
Развернуть Свернуть Копировать
if (driver.FindElementsByXPath("//android.widget.EditText[contains(@resource-id, 'et_verification_code')]").Count>0)
{
    project.Variables["captha_tel_yes_no"].Value = "yes";
}
else
{
    project.Variables["captha_tel_yes_no"].Value = "no";
}
снипет управления телом отработал и я не могу опять вернутся на этап разгадывания капчи
После прерывания работы скрипта, чтоб не потерять текущее состояние, я делаю так:
1.Нужное приложение должно быть на рабочем столе
2.Затем запускаю appium с activity рабочего стола, например для NovaLauncher как у меня:
Код:
Развернуть Свернуть Копировать
cap.SetCapability("appPackage", "com.teslacoilsw.launcher");
cap.SetCapability("appActivity", "com.teslacoilsw.launcher.NovaLauncher");
3.Ну и стандартно уже через appium кликаю по приложению в итоге все загружается без потери прогресса.
Appium нельзя запускать без activity вообще - вычитал на иностранных форумах.
 
Ок, спасибо за помощь, буду пробовать
 
a6a7810a5aba.jpg

список пуст почему то
 
  • Спасибо
Реакции: instacash
a281c1623931.jpg


resours-id , нету ,что делать?
 
Последнее редактирование:
обновил ведро , щас все поехало :ak:
a6b7a4432664.jpg
 
Как кликнуть сюда "Зарегистрируйтесь", подскажите плз. И какой activity нужно ставить на этой странице?
1233.jpg
 
Доброго дня! Клик с удержанием не подскажете как реализовать, который необходим для вызова контекстного меню в некоторых приложениях?
 
Решил кто нить с многопоточностью?Если они серв поднять и 3 тел подсоединить работать не будет, нужно на каждый тел поднимать серв?
 
Решил кто нить с многопоточностью?Если они серв поднять и 3 тел подсоединить работать не будет, нужно на каждый тел поднимать серв?
На каждый экземпляр устройства/эмулятора поднимаем сервер.
Adb команды тоже разделяем. Сначала смотрим серийный_номер через команду adb devices и посылаем команды на устройства
Код:
Развернуть Свернуть Копировать
adb -s серийный_номер команда
 
  • Спасибо
Реакции: irving zisman
На каждый экземпляр устройства/эмулятора поднимаем сервер.
Adb команды тоже разделяем. Сначала смотрим серийный_номер через команду adb devices и посылаем команды на устройства
Код:
Развернуть Свернуть Копировать
adb -s серийный_номер команда
а в дальнейшем , нужно будет шаблон в многопотоке запускать или нет?
 
а в дальнейшем , нужно будет шаблон в многопотоке запускать или нет?
Наверное лучше и удобнее будет вывести настройки серверов и серийные номера во входные настройки шаблона ну и в шаблоне по переменным все разнести
 
На каждый экземпляр устройства/эмулятора поднимаем сервер.
Adb команды тоже разделяем. Сначала смотрим серийный_номер через команду adb devices и посылаем команды на устройства
Код:
Развернуть Свернуть Копировать
adb -s серийный_номер команда
То есть
Код:
Развернуть Свернуть Копировать
--selendroid-port 8082
разные порты или при инициализации?
Код:
Развернуть Свернуть Копировать
AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"), cap);
 
10fb8b006a97.jpg


и как сделать конект к конкретному устройству
 
  • Спасибо
Реакции: Jufel и irving zisman
были ли у кого проблемы с работой на виртуалках?
не могу приконектится к аппиуму через код, через стандартный порт не хочет, подскажите у кого подобное было
вм черер vmware
 
были ли у кого проблемы с работой на виртуалках?
не могу приконектится к аппиуму через код, через стандартный порт не хочет, подскажите у кого подобное было
вм черер vmware
смотри в диспетчере задач, в мониторе ресурсов во вкладке сеть какие порты использует виртуалка.
 

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