def test_runner(dev, poco, test_id): f_exit = False while not f_exit: state = find_current_state(poco) print('test_runner()::state: ' + state) if state == State.NONE: time.sleep(10) if state == State.LOGO_1 or state == State.LOGO_2: time.sleep(1) if state == State.TERMS_WND: # touch_node(dev, poco, 'H_logos_Canvas/TermsOfUseWindow/AcceptButton') poco('AcceptButton').click() time.sleep(1) if state == State.LOADING: time.sleep(10) if state == State.MAIN_MENU: time.sleep(5) if state == State.SETTINGS: touch_node(dev, poco, 'H_Canvas/USER_Main_UI/BASE_MENU+CHAT/Avr_bg/Avr_pause'); if state == State.MAP_EVENT_REWARD: touch_node(dev, poco, 'H_Canvas/USER_Main_UI/BASE_MENU+CHAT/Avr_bg/Avr_pause'); time.sleep(1) if state == State.DAILY_REWARDS: touch_node(dev, poco, 'H_Canvas/USER_Main_UI/BASE_MENU+CHAT/Avr_bg/Avr_pause'); time.sleep(1) # пока единственное исключение из правил if state == State.TUTORIAL and test_id == Cases.TUTORIAL_0: # считаем что мы готовы к запуску теста result, runned = run_test(dev, poco, test_id) if not runned: out('тест не найден', 'test_id: ' + test_id) return result, runned # -------------------------------------- if state == State.MAP: # считаем что мы готовы к запуску теста result, runned = run_test(dev, poco, test_id) if not runned: out('тест не найден', 'test_id: ' + test_id) return result, runned
def test_daily_rewards(dev, poco): out('Daily Rewards test started...') f_ret = False t0 = time.time() state = find_current_state(poco) if state == State.MAP: f_ret = run_test_daily_rewards(dev, poco) out('Daily Rewards test time: ' + str(time.time() - t0)) if not f_ret: out('last snapshot') snapshot() return f_ret
def test_tutorial_8(dev, poco): out('Tutorial_8 test started...') f_ret = False t0 = time.time(); state = find_current_state(poco) if state == State.MAP: f_ret = run_test(dev, poco) out('Tutorial_8 test time: ' + str(time.time() - t0)) if not f_ret: out('last snapshot') snapshot() return f_ret
def test_tutorial_0(dev, poco): out('Tutorial_0 test started...') f_ret = False t0 = time.time() state = find_current_state(poco) if state == State.MAP: if reset_progress(dev, poco): f_ret = run_test_tutorial(dev, poco) else: if state == State.TUTORIAL: f_ret = run_test_tutorial(dev, poco) out("Tutorial_0 test time: " + str(time.time() - t0)) if not f_ret: out('last snapshot') snapshot() if not f_ret: skip_tutorial_0(dev, poco) return f_ret
def run_test(dev, poco, big_test=False): path_back = 'H_Canvas/USER_Main_UI/BACK_BUTTON_MOBILE' path_map = 'H_Canvas/USER_Main_UI/SWITCH_TO_MAP/Button_exit' # path_map = 'H_Canvas/USER_Main_UI/MAP_ADDON/SWITCH_TO_WORLD' path_quests_menu = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_qwest' # path_quests_menu_lst = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg' path_quest_8 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (7)' path_quest_9 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (8)' path_accept_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Accept' path_cancel_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Decline' path_event_reward = 'H_Canvas/USER_Main_UI/EVENT_REVARD' ### --------------------------------------- if not go_to_academia(dev, poco): return False time.sleep(1) ### --------------------------------------- # идем в меню выбора квеста # out('нажимаем кнопку квестов') if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем первый квест if not wait_and_click_button(dev, poco, path_quest_8): return False # тыкаем принять if not wait_and_click_button(dev, poco, path_accept_qst): return False # выходим на глобальную карту if not wait_and_click_button(dev, poco, path_map): return False # ждём перехода на глобальную карту state = find_current_state(poco) wait_cnt = 0 while state != State.MAP: wait_cnt += 1 if (wait_cnt > 3): out('долгое ожидание глобальной карты', 'что-то пошло не так') return False # out('wait') time.sleep(3) state = find_current_state(poco) # тыкаем в маркер btn_tut_marker btn_tut_marker = 'T_GLOBAL_MAP/Event_Radius(Clone)' if not wait_and_click_button(dev, poco, btn_tut_marker): return False tutorial_quest_8 = 'TutorialQuest8(Clone)' # ждём начала туториала сообщение "нажмите на знак артефакта" node = wait_for_node_visible(poco, tutorial_quest_8, 5) wait_cnt = 0 while not node.exists(): wait_cnt += 1 if (wait_cnt > 3): out('долгое ожидание запуска обучения', 'что-то пошло не так') return False out('ждём запуска туториала (3 sec)') time.sleep(3) node = wait_for_node_visible(poco, tutorial_quest_8, 5) # сообщение 'нажмите на знак артефакта' node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'нажмите на знак артефакта') return False # тыкаем back if not wait_and_click_button(dev, poco, path_back): return False # жмём на использование артефакта path_artefact = 'H_Canvas/USER_Main_UI/ARTEFACT_BLOCK/Artefact1/ArtefactIcon' if not wait_and_click_button(dev, poco, path_artefact): return False time.sleep(10) # сообщение 'нужно время на востановление' node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'нужно время на востановление') return False # тыкаем back if not wait_and_click_button(dev, poco, path_back): return False time.sleep(5) # сообщение 'потопите 2 тренеровочных корабля' node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'потопите 2 тренеровочных корабля') return False # тыкаем back if not wait_and_click_button(dev, poco, path_back): return False time.sleep(10) # цикл потопления кораблей f_exit = False i = 10 while not f_exit: node = wait_for_node_visible(poco, path_event_reward, 5) if node.exists(): f_exit = True else: # жмём на использование артефакта path_artefact = 'H_Canvas/USER_Main_UI/ARTEFACT_BLOCK/Artefact1/ArtefactIcon' if not wait_and_click_button(dev, poco, path_artefact): return False time.sleep(10) if i < 1: out('долгое потопление кораблей', '') return False # сообщение "вот ваша награда" node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', '"вот ваша награда"') return False if not wait_and_click_button(dev, poco, path_back): return False # поплыли в академию if not go_to_academia(dev, poco): return False time.sleep(1) if big_test: # идем в меню выбора квеста if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем третий квест if not wait_and_click_button(dev, poco, path_quest_9): return False # тыкаем отменить if not wait_and_click_button(dev, poco, path_cancel_qst): return False # тыкаем назад из меню квестов if not wait_and_click_button(dev, poco, path_back): return False ### --------------------------------------- out('нажимаем кнопку выхода из города на карту') node = wait_for_node_visible(poco, path_map, 5) if not node.exists(): out('Button not showed', path_map) return False touch_center(dev, node) time.sleep(1) return True
def run_test_tutorial(dev, poco): info_wnd = 'H_Canvas/USER_Main_UI/EVENT_REVARD' back_btn = 'H_Canvas/USER_Main_UI/BACK_BUTTON_MOBILE' shoot_btn = 'H_Canvas/USER_Main_UI/FIGHT_PANEL/SHOOT_Manual' shoot_hilighter = 'H_Canvas/USER_Main_UI/HIGHLIGHT_INTERFACE' out("... На горизонте появилось судно") time.sleep(15) node = wait_for_node_visible(poco, info_wnd, 5) if not node.exists(): out('долгое ожидание сообщения', '... На горизонте появилось судно') return False if not wait_and_click_button(dev, poco, back_btn): return False time.sleep(10) out("Чтобы выстрелить, нажмите на подсвеченную кнопку.") node = wait_for_node_visible(poco, info_wnd, 5) if not node.exists(): out('долгое ожидание сообщения', "Чтобы выстрелить, нажмите на подсвеченную кнопку.") return False if not wait_and_click_button(dev, poco, back_btn): return False out("тыкаем кнопку стрельбы 1 раз") node = wait_for_node_visible(poco, shoot_btn, 5, True) node_a = wait_for_node_visible(poco, shoot_hilighter, 5) if not node.exists() or not node_a.exists(): out('Button ' + shoot_btn + ' not showed', 'тыкаем кнопку стрельбы 1 раз') return False touch_center(dev, node) time.sleep(3) out("Противник обездвижен! ...") node = wait_for_node_visible(poco, info_wnd, 5) if not node.exists(): out('долгое ожидание сообщения', "Противник обездвижен! ...") return False if not wait_and_click_button(dev, poco, back_btn): return False out("ждём перезарядки") time.sleep(5) out("тыкаем кнопку стрельбы") node = wait_for_node_visible(poco, shoot_btn, 5, True) node_a = wait_for_node_visible(poco, shoot_hilighter, 5) if not node.exists() or not node_a.exists(): out('Button ' + shoot_btn + ' not showed', 'тыкаем кнопку стрельбы') return False touch_center(dev, node) time.sleep(5) out("Чем дольше враг остается в зоне прицеливания, тем точнее выстрел.") node = wait_for_node_visible(poco, info_wnd, 5) if not node.exists(): out( 'долгое ожидание сообщения', "Чем дольше враг остается в зоне прицеливания, тем точнее выстрел." ) return False if not wait_and_click_button(dev, poco, back_btn): return False time.sleep(5) out("Мы потопили врага, но капитан пиратского судна перед смертью призвал жуткую тварь из глубин океана." ) node = wait_for_node_visible(poco, info_wnd, 5) if not node.exists(): out('долгое ожидание сообщения', "Мы потопили врага") return False if not wait_and_click_button(dev, poco, back_btn): return False out("ждём на потопление корабля и загрузку в глобальную карту 20 сек") time.sleep(20) out("проверяем что оказались на глобальной карте") state = find_current_state(poco) while state == State.NONE or state == State.TUTORIAL: time.sleep(3) state = find_current_state(poco) out('state: ' + state) if state == State.MAP or state == State.MAP_EVENT_REWARD: out('Tutorial Complete') else: out('Incorrect state on exit tutorial', "tutorial test failed") return False return True
def run_test_tutorial_1(dev, poco, big_test=False): btn_back = 'H_Canvas/USER_Main_UI/BACK_BUTTON_MOBILE' btn_map = 'H_Canvas/USER_Main_UI/SWITCH_TO_MAP/Button_exit' # btn_map = 'H_Canvas/USER_Main_UI/MAP_ADDON/SWITCH_TO_WORLD' # btn_academy = 'T_GLOBAL_MAP/EPTown_t_academy_name' btn_tut_marker = 'T_GLOBAL_MAP/Event_Radius(Clone)' btn_quests_menu = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_qwest' # wnd_quests_menu_lst = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg' btn_quest_1 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (0)' btn_quest_2 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (1)' btn_accept_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Accept' btn_cancel_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Decline' wnd_event_reward = 'H_Canvas/USER_Main_UI/EVENT_REVARD' tutorial_quest_1 = 'TutorialQuest1(Clone)' btn_rot_left = 'H_Canvas/USER_Main_UI/CONTROLL_PANEL/ROT_LEFT' # btn_rot_right = 'H_Canvas/USER_Main_UI/CONTROLL_PANEL/ROT_RIGHT' btn_speed = 'H_Canvas/USER_Main_UI/CONTROLL_PANEL/TOGGLE_SPEED' btn_speed_up = 'H_Canvas/USER_Main_UI/SPEED_UP/BTN' ### --------------------------------------- if not go_to_academia(dev, poco): return False time.sleep(1) ### --------------------------------------- # идем в меню выбора квеста # out('нажимаем кнопку квестов') if not wait_and_click_button(dev, poco, btn_quests_menu): return False # тыкаем первый квест if not wait_and_click_button(dev, poco, btn_quest_1): return False # тыкаем принять if not wait_and_click_button(dev, poco, btn_accept_qst): return False # выходим на глобальную карту if not wait_and_click_button(dev, poco, btn_map): return False # ждём перехода на глобальную карту state = find_current_state(poco) wait_cnt = 0 while state != State.MAP: wait_cnt += 1 if (wait_cnt > 3): out('долгое ожидание глобальной карты', 'что-то пошло не так') return False # out('wait') sleep(3) state = find_current_state(poco) # тыкаем в маркер btn_tut_marker if not wait_and_click_button(dev, poco, btn_tut_marker): return False # ждём начала туториала сообщение "направление ветра" node = wait_for_node_visible(poco, tutorial_quest_1, 5) wait_cnt = 0 while not node.exists(): wait_cnt += 1 if (wait_cnt > 3): out('долгое ожидание запуска обучения', 'что-то пошло не так') return False # out('wait') sleep(3) node = wait_for_node_visible(poco, tutorial_quest_1, 5) node = wait_for_node_visible(poco, wnd_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'что-то пошло не так, нет сообщения "направление ветра"') return False if not wait_and_click_button(dev, poco, btn_back): return False # поворачиваемся по ветру до появления "следуйте до следующего маркера" node = wait_for_node_visible(poco, wnd_event_reward, 5) wait_cnt = 0 while not node.exists(): wait_cnt += 1 if (wait_cnt > 10): out('долгое ожидание сообщения', 'нет сообщения "следуйте до следующего маркера"') return False out('press rot_left') node = wait_for_node_visible(poco, btn_rot_left, 5) # touch_center(dev, node, logout=False, times=5) node.swipe([0, 0], duration=6) # костыль на зажатие node = wait_for_node_visible(poco, wnd_event_reward, 5) # закрываем диалог if not wait_and_click_button(dev, poco, btn_back): return False # тыкаем на кнопку "паруса" if not wait_and_click_button(dev, poco, btn_speed): return False # следуем до появление про ускорение sleep(5) node = wait_for_node_visible(poco, wnd_event_reward, 5) wait_cnt = 0 while not node.exists(): wait_cnt += 1 if (wait_cnt > 10): out('долгое ожидание сообщения', 'нет сообщения про ускорение') return False sleep(5) node = wait_for_node_visible(poco, wnd_event_reward, 5) # закрываем диалог if not wait_and_click_button(dev, poco, btn_back): return False # тыкаем "ускорение" if not wait_and_click_button(dev, poco, btn_speed_up): return False # ждём перехода на глобальную карту state = find_current_state(poco) wait_cnt = 0 while state != State.MAP_EVENT_REWARD: wait_cnt += 1 if (wait_cnt > 3): out('долгое ожидание глобальной карты', 'что-то пошло не так') return False out('wait') time.sleep(3) state = find_current_state(poco) # сообщение "ускорение работает на карте тоже" if not wait_and_click_button(dev, poco, btn_back): return False # тыкаем "ускорение" if not wait_and_click_button(dev, poco, btn_speed_up): return False # сообщение "отлично, вот твоя награда" if not wait_and_click_button(dev, poco, btn_back): return False # переходим в "академию" if not go_to_academia(dev, poco): return False time.sleep(1) if big_test: # идем в меню выбора квеста if not wait_and_click_button(dev, poco, btn_quests_menu): return False # тыкаем второй квест if not wait_and_click_button(dev, poco, btn_quest_2): return False # тыкаем отменить if not wait_and_click_button(dev, poco, btn_cancel_qst): return False # тыкаем назад из меню квестов if not wait_and_click_button(dev, poco, btn_back): return False ### --------------------------------------- out('нажимаем кнопку выхода из города на карту') node = wait_for_node_visible(poco, btn_map, 5) if not node.exists(): out('Button not showed', btn_map) return False touch_center(dev, node) time.sleep(1) return True
def run_test(dev, poco, big_test=False): path_point_to_buy = 'T_GLOBAL_MAP/EPTown_Black_skull' # or EPTown_Mothers_TWN path_point_to_sell = 'T_GLOBAL_MAP/EPTown_Amelia' # or EPTown_Grey_Land_CAP path_speed_up = 'H_Canvas/USER_Main_UI/SPEED_UP/BTN' path_back = 'H_Canvas/USER_Main_UI/BACK_BUTTON_MOBILE' path_map = 'H_Canvas/USER_Main_UI/SWITCH_TO_MAP/Button_exit' # path_map = 'H_Canvas/USER_Main_UI/MAP_ADDON/SWITCH_TO_WORLD' path_quests_menu = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_qwest' # path_quests_menu_lst = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg' path_quest_9 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (8)' path_quest_X = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (9)' path_accept_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Accept' path_cancel_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Decline' path_event_reward = 'H_Canvas/USER_Main_UI/EVENT_REVARD' ### --------------------------------------- if not go_to_academia(dev, poco): return False time.sleep(1) ### --------------------------------------- # идем в меню выбора квеста # out('нажимаем кнопку квестов') if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем первый квест if not wait_and_click_button(dev, poco, path_quest_9): return False # тыкаем принять if not wait_and_click_button(dev, poco, path_accept_qst): return False time.sleep(2) # сообщение "в городе с зеленым% товары со скидкой" node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'в городе с зеленым% товары со скидкой') return False if not wait_and_click_button(dev, poco, path_back): return False # тыкаем на город с зеленый "%" if not wait_and_click_button(dev, poco, path_point_to_buy): return False # тыкаем на "укорение" if not wait_and_click_button(dev, poco, path_speed_up): return False # 10 секунд на доплыть к городу должно хватить time.sleep(10) # жёдм когда окажемся в городе, имя парсим из кода ns = path_point_to_buy.split('_') point_name = ns[len(ns) - 1] state = find_current_state(poco) while state != State.TOWN: out('ждём ' + point_name + ' (3 sec)') time.sleep(3) state = find_current_state(poco) # тыкаем "трюм" path_trum = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_trum' if not wait_and_click_button(dev, poco, path_trum): return False # тыкаем "магазин" path_market = 'H_Canvas/USER_Main_UI/' \ +'TRUM_STORE_STORAGE/MARKET/CLICKABLE SIZE' if not wait_and_click_button(dev, poco, path_market): return False # подготавливаем swipe path_lst_root = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\ +'ItemsWindow/ScroolArea/ItemList' my_swipe(dev, poco, path_lst_root, 'Item4', 'Item1') # выбираем "винтажный портвейн" path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\ +'ItemsWindow/ScroolArea/ItemList/Item8' if not wait_and_click_button(dev, poco, path): return False # тыкаем купить 1 btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\ +'SellWindowBG/SellWindow/SellOne/SellOneBTN' if not wait_and_click_button(dev, poco, btn_path): return False time.sleep(2) # сообщение "в городе с красным % товары дороже" node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'в городе с красным % товары дороже') return False if not wait_and_click_button(dev, poco, path_back): return False # тыкаем на город с зеленый "%" if not wait_and_click_button(dev, poco, path_point_to_sell): return False # тыкаем на "укорение" if not wait_and_click_button(dev, poco, path_speed_up): return False # 10 секунд на доплыть к городу должно хватить time.sleep(10) # жёдм когда окажемся в городе, имя парсим из кода ns = path_point_to_sell.split('_') point_name = ns[len(ns) - 1] state = find_current_state(poco) while state != State.TOWN: out('ждём ' + point_name + ' (3 sec)') time.sleep(3) state = find_current_state(poco) # тыкаем "трюм" path_trum = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_trum' if not wait_and_click_button(dev, poco, path_trum): return False # тыкаем на товары на корабле path_ship = 'H_Canvas/USER_Main_UI/TRUM_STORE_STORAGE/'\ +'SHIP/CLICKABLE SIZE' if not wait_and_click_button(dev, poco, path_ship): return False # подготавливаем swipe path_lst_root = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\ +'ItemsWindow/ScroolArea/ItemList' my_swipe(dev, poco, path_lst_root, 'Item4', 'Item1') my_swipe(dev, poco, path_lst_root, 'Item7', 'Item4') my_swipe(dev, poco, path_lst_root, 'Item10', 'Item7') my_swipe(dev, poco, path_lst_root, 'Item13', 'Item10') # выбираем "винтажный портвейн" path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\ +'ItemsWindow/ScroolArea/ItemList/Item16' if not wait_and_click_button(dev, poco, path): return False # тыкаем купить 1 btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\ +'SellWindowBG/SellWindow/SellOne/SellOneBTN' if not wait_and_click_button(dev, poco, btn_path): return False time.sleep(2) # out('---- конец теста, дальше недоделанно ----') # time.sleep(102); # return False # сообщение "вот ваша награда" node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', '"вот ваша награда"') return False if not wait_and_click_button(dev, poco, path_back): return False out('нажимаем кнопку выхода из города на карту') node = wait_for_node_visible(poco, path_map, 5) if not node.exists(): out('Button not showed', path_map) return False touch_center(dev, node) time.sleep(1) # поплыли в академию if not go_to_academia(dev, poco): return False time.sleep(1) if big_test: # идем в меню выбора квеста if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем третий квест if not wait_and_click_button(dev, poco, path_quest_X): return False # тыкаем отменить if not wait_and_click_button(dev, poco, path_cancel_qst): return False # тыкаем назад из меню квестов if not wait_and_click_button(dev, poco, path_back): return False ### --------------------------------------- out('нажимаем кнопку выхода из города на карту') node = wait_for_node_visible(poco, path_map, 5) if not node.exists(): out('Button not showed', path_map) return False touch_center(dev, node) time.sleep(1) return True
def run_test(dev, poco, big_test=False): path_back = 'H_Canvas/USER_Main_UI/BACK_BUTTON_MOBILE' path_map = 'H_Canvas/USER_Main_UI/SWITCH_TO_MAP/Button_exit' # path_map = 'H_Canvas/USER_Main_UI/MAP_ADDON/SWITCH_TO_WORLD' path_quests_menu = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_qwest' # wnd_quests_menu_lst = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg' path_quest_6 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (5)' path_quest_7 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (6)' path_spec_pirate = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/SPEC_Panel/SPEC_pirate' path_accept_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Accept' path_cancel_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Decline' path_event_reward = 'H_Canvas/USER_Main_UI/EVENT_REVARD' ### --------------------------------------- if not go_to_academia(dev, poco): return False time.sleep(1) ### --------------------------------------- # идем в меню выбора квеста # out('нажимаем кнопку квестов') if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем первый квест if not wait_and_click_button(dev, poco, path_quest_6): return False # тыкаем принять if not wait_and_click_button(dev, poco, path_accept_qst): return False # нажимаем кнопку выхода из города на карту node = wait_for_node_visible(poco, path_map, 5) if not node.exists(): out('Button not showed', path_map) return False touch_center(dev, node) time.sleep(1) # поплыли на жанетту path = 'T_GLOBAL_MAP/EPTown_Janetta' node = wait_for_node_visible(poco, path, 5) touch_center(dev, node) # ''' user_main_ui = 'H_Canvas/USER_Main_UI' fights = [ 'NEW_FIGHT/AUTOFIGHT', 'NEW_FIGHT (1)/AUTOFIGHT', 'NEW_FIGHT (2)/AUTOFIGHT' ] f_exit = False i = 50 while not f_exit: i -= 1 if i < 0: out('долгое ожидание сообщения', 'корабль достаточно потрепало...') return False node = wait_for_node_visible(poco, user_main_ui) wnd_reward = get_node_child(node, 'EVENT_REVARD', False) if wnd_reward.exists(): # по идее дождались сообщения о повреждённости корабля out('корабль достаточно потрепало...') if not wait_and_click_button(dev, poco, path_back): return False f_exit = True else: touched = False for fight in fights: node_fight = get_node_child(node, fight, False) if node_fight.exists() and not touched: out('автобой... ' + fight) touch_center(dev, node_fight) touched = True if not f_exit: time.sleep(0.5) state = find_current_state(poco) while state != State.TOWN: out('ждём Жанетту (3 sec)') time.sleep(3) state = find_current_state(poco) # ''' # идем в меню выбора квеста out('нажимаем кнопку квестов') if not wait_and_click_button(dev, poco, path_quests_menu): return False # чинимся за счёт пиратов out('чинимся за счёт пиратов') if not wait_and_click_button(dev, poco, path_spec_pirate): return False # сообщение "вот ваша награда" node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', '"вот ваша награда"') return False if not wait_and_click_button(dev, poco, path_back): return False out('нажимаем кнопку выхода из города на карту') node = wait_for_node_visible(poco, path_map, 5) if not node.exists(): out('Button not showed', path_map) return False touch_center(dev, node) time.sleep(1) out('плывём в академию') if not go_to_academia(dev, poco): return False time.sleep(2) if big_test: # идем в меню выбора квеста if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем третий квест if not wait_and_click_button(dev, poco, path_quest_7): return False # тыкаем отменить if not wait_and_click_button(dev, poco, path_cancel_qst): return False # тыкаем назад из меню квестов if not wait_and_click_button(dev, poco, path_back): return False ### --------------------------------------- out('нажимаем кнопку выхода из города на карту') node = wait_for_node_visible(poco, path_map, 5) if not node.exists(): out('Button not showed', path_map) return False touch_center(dev, node) time.sleep(1) return True
def run_test(dev, poco, big_test=False): path_back = 'H_Canvas/USER_Main_UI/BACK_BUTTON_MOBILE' path_map = 'H_Canvas/USER_Main_UI/SWITCH_TO_MAP/Button_exit' # path_map = 'H_Canvas/USER_Main_UI/MAP_ADDON/SWITCH_TO_WORLD' path_quests_menu = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_qwest' # path_quests_menu_lst = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg' path_quest_7 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (6)' path_quest_8 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (7)' path_accept_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Accept' path_cancel_qst = 'H_Canvas/USER_Main_UI/EVENT_REVARD/Avr_paper/Avr_Decline' path_event_reward = 'H_Canvas/USER_Main_UI/EVENT_REVARD' precission_path = 'Rank2(Clone)/MARKER_NEW(Clone)/4-PRECISSION' ### --------------------------------------- if not go_to_academia(dev, poco): return False time.sleep(1) ### --------------------------------------- # идем в меню выбора квеста # out('нажимаем кнопку квестов') if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем первый квест if not wait_and_click_button(dev, poco, path_quest_7): return False # тыкаем принять if not wait_and_click_button(dev, poco, path_accept_qst): return False # выходим на глобальную карту if not wait_and_click_button(dev, poco, path_map): return False # ждём перехода на глобальную карту state = find_current_state(poco) wait_cnt = 0 while state != State.MAP: wait_cnt += 1 if (wait_cnt > 3): out('долгое ожидание глобальной карты', 'что-то пошло не так') return False # out('wait') time.sleep(3) state = find_current_state(poco) # тыкаем в маркер btn_tut_marker btn_tut_marker = 'T_GLOBAL_MAP/Event_Radius(Clone)' if not wait_and_click_button(dev, poco, btn_tut_marker): return False tutorial_quest_7 = 'TutorialQuest7(Clone)' # ждём начала туториала сообщение "направление ветра" node = wait_for_node_visible(poco, tutorial_quest_7, 5) wait_cnt = 0 while not node.exists(): wait_cnt += 1 if (wait_cnt > 3): out('долгое ожидание запуска обучения', 'что-то пошло не так') return False out('ждём запуска туториала (3 sec)') time.sleep(3) node = wait_for_node_visible(poco, tutorial_quest_7, 5) # сообщение 'нведите трубу на врага' node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'нведите трубу на врага') return False # тыкаем back if not wait_and_click_button(dev, poco, path_back): return False # поворачиваем камеру к кораблю node_path = 'Rank2(Clone)/MARKER_NEW(Clone)/10-MobileRelationsMark' if not rotate_cam_to(dev, poco, node_path, True): return False # тыкаем Zoom node_path = 'H_Canvas/USER_Main_UI/CONTROLL_PANEL/ZOOM' if not wait_and_click_button(dev, poco, node_path): return False # поворачиваем камеру к кораблю # node_path = 'Rank2(Clone)/MARKER_NEW(Clone)/10-MobileRelationsMark' # if not rotate_cam_zoom_to(dev, poco, node_path, True): return False # сообщение 'уничтожте карабль' node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', 'уничтожте карабль') return False # тыкаем back if not wait_and_click_button(dev, poco, path_back): return False node_path = 'H_Canvas/USER_Main_UI/CONTROLL_PANEL/TOGGLE_SPEED' if not wait_and_click_button(dev, poco, node_path): return False out('ожидаем подплытия') time.sleep(30) node_path = 'H_Canvas/USER_Main_UI/CONTROLL_PANEL/TOGGLE_SPEED' if not wait_and_click_button(dev, poco, node_path): return False # поворачиваем камеру к кораблю poco("4-PRECISSION") if not rotate_l_let_to(dev, poco, precission_path, True): return False f_exit = False while not f_exit: node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): node = wait_for_node_visible(poco, precission_path, 10) if not node.exists(): out('долгое ожидание прицела', precission_path) return False node_path = 'H_Canvas/USER_Main_UI/FIGHT_PANEL/SHOOT_Manual' if not wait_and_click_button(dev, poco, node_path): return False time.sleep(4) # задержка для перезарядки else: f_exit = True # сообщение "вот ваша награда" node = wait_for_node_visible(poco, path_event_reward, 5) if not node.exists(): out('долгое ожидание сообщения', '"вот ваша награда"') return False if not wait_and_click_button(dev, poco, path_back): return False # поплыли в академию if not go_to_academia(dev, poco): return False time.sleep(1) if big_test: # идем в меню выбора квеста if not wait_and_click_button(dev, poco, path_quests_menu): return False # тыкаем третий квест if not wait_and_click_button(dev, poco, path_quest_8): return False # тыкаем отменить if not wait_and_click_button(dev, poco, path_cancel_qst): return False # тыкаем назад из меню квестов if not wait_and_click_button(dev, poco, path_back): return False ### --------------------------------------- out('нажимаем кнопку выхода из города на карту') node = wait_for_node_visible(poco, path_map, 5) if not node.exists(): out('Button not showed', path_map) return False touch_center(dev, node) time.sleep(1) return True