@Q_Q К сожалению через node.js и ws модуль не могу конектится к сокету т.к там каждый раз создаётся уникальная ссылка для нового пользователя, а объект который её создаёт определить для меня трудно сайт написан на react + obfurscator. Плюс к этому ещё и в самом ws внутри нужно каждые 5 минут отправлять токен аутентификации который генерирует какая-то анонимная функция либо вообще на сервере. Вроде ещё как можно сделать обёртку или сделать прокси чтобы свои обработчики повесить но это уже вообще темный лес для меня недостижимый. Поэтому пришлось использовать такой костыль. В Принципе все работает, ws команды я отправляю также через Ява скрипт и взаимодействую с этим сайтом быстро не используя веб интерфейс сайта вообще. Единственная проблема это видеть всю консоль не только в режиме отладчика. Я думал может в BAS есть какой-то свой способ о котором я не знаю, просто парсить ее в переменную бесконечно каждый раз обращаясь к ней и записывая последнее действие по умолчанию
Bluestacks в/c BAS
-
-
@UserTrue said in Bluestacks в/c BAS:
adb
А встречал кто-нибудь обертку над adb, чтобы кликать можно было нормально по xpath? Пробовал делать автокликер на Memu - в принципе работает, но часто не ждет элемента (логики в нем нет), а надо часто ожидать, отсюда ошибки
-
Вот мой код на python тут все с проверкой присутствия и задержками на ожидания
но тут нужно понимать язык программирования pythonfrom PIL import Image import imagehash import pyautogui import time import os pyautogui.FAILSAFE = False countFailFindCloseButton = 0 #pyautogui.click('close1.png') def checkGetFreeIsOpen(img): time.sleep(2) return pyautogui.locateOnScreen(img) def waitAds(): if(pyautogui.locateOnScreen('error.png')): checkButton('errorClose.png') checkButton('button.png') waitAds() else: time.sleep(1) if(checkGetFreeIsOpen('getFree.png')): print('Ожидаю начала показа показа рекламы') waitAds() return False else: print('Начался показ рекламы') watchAds(31) def checkButton(button): time.sleep(2) buttonlocation = pyautogui.locateOnScreen(button, grayscale=True, region=None, confidence=0.8) if(buttonlocation): buttonpoint = pyautogui.center(buttonlocation) pyautogui.click(buttonpoint) else: print('Кнопка '+button+' не найдена иду на другой заход') checkButton(button) def checkClose(button, top = 60): try: buttonlocation = pyautogui.locateOnScreen(button, grayscale=True, region=(0,top, 1920,250), confidence=0.9) except: print('Программа рухнула') watchAds(31) if(buttonlocation): buttonpoint = pyautogui.center(buttonlocation) pyautogui.click(buttonpoint) return True else: print('Кнопка '+button+' не найдена') return False def watchAds(sec): time.sleep(sec) if(checkCloseButtonPresent()): time.sleep(1) if(pyautogui.locateOnScreen('skip.png', confidence=0.8)): print('Обнаружено случайное прерывание первого типа') checkButton('skipButton.png') watchAds(31) elif(pyautogui.locateOnScreen('skip1.png', confidence=0.8)): print('Обнаружено случайное прерывание второго типа') checkButton('skipButton1.png') watchAds(31) else: time.sleep(1) checkCloseButtonPresent() start() else: myScreenshot = pyautogui.screenshot() myScreenshot.save('fail_find_close_button'+str(time.time())+'.png') print('Что пошло не по плану кнопка закрыть рекламу не была обнаружена') global countFailFindCloseButton if(countFailFindCloseButton > 2): #exit() if(checkClose('tabIcon.png', 0)): checkCloseButtonPresent() start() else: countFailFindCloseButton += 1 watchAds(5) def checkCloseButtonPresent(): path = './close' dir_list = os.listdir(path) for fileClose in dir_list: if(checkClose(path+'/'+fileClose)): return True return False #if(checkClose('./close/close1.png') or checkClose('./close/close2.png') or checkClose('./close/close3.png') or checkClose('./close/close4.png') or checkClose('./close/close5.png') or checkClose('./close/close6.png') or checkClose('./close/close7.png') or checkClose('./close/close8.png') or checkClose('./close/close9.png') or checkClose('./close/close10.png')): # return True #else: # return False def start(): if(checkGetFreeIsOpen('getFree.png')): checkButton('button.png') waitAds() else: print('Не обнаружена вкладка getFree начинаю все поновой') start() start()На сколько я помню там есть какие то программы которые позволяют делать примерно тоже что и этот мой код
т.е выпонять и поиск по экрану и задержку на ожидание и какие то еще действие
поисщи в гугле что типа
auto click , automatization click -
@seoshnek said in Bluestacks в/c BAS:
А встречал кто-нибудь обертку над adb,
Их куча разных на гитхабе, лично я писал свою. Есть еще большая библиотека называется appium, я ее не стал использовать тк там надо устанавливать Java и настраивать переменные окружения, может еще что-то, но мне было лень это проделывать каждый раз ))
-
-
@seoshnek said in Bluestacks в/c BAS:
Мое нубское видение - я должен открыть где-то на 127.0.0.1 обертку в браузере и там увидеть android. И потом уже кликать. @UserTrue, вы такое написали? Через браузер?
Нет конечно, из коробки нет ничего такого. Все кодом и головой ) Утилита adb позволяет взаимодействовать с андроидом, uiautomatorviewer утилита которая позволяет находить координаты нужных элементов, по xpath в том числе.
-
