Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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