예제 #1
0
def wait_for_node_visible(poco,
                          str_node,
                          timeout=1,
                          clickable=False,
                          logout=False):
    if logout:
        out('wait: ' + str_node)

    f_exit = False
    while not f_exit:
        # poco = UnityPoco()
        with poco.freeze() as frozen_poco:
            node = get_node_quick(frozen_poco, str_node, False)
            if node.exists():
                if node.attr('visible'):
                    if clickable:
                        if node.attr('clickable'):
                            f_exit = True
                    else:
                        f_exit = True

        if not f_exit:
            time.sleep(1)
            timeout = timeout - 1
            if (timeout < 1):
                if logout:
                    log(
                        'Node \'' + str_node +
                        '\' is not visible, exit for timeout', get_trace())
                return node
        else:
            if logout:
                out('wait return: ' + str_node)
            return node
예제 #2
0
 def test_A55(self):
     u"""测试点击第三个金币堆确认提示弹窗显示的按钮"""
     page = 'purchase_popup'
     CostList = GetMeta("shop.xml", "costs")
     coin3_metacash = int(CostList[5].replace("3000#", ""))
     CoinList = GetMeta('shop.xml', 'items')
     coin3_meta = int(CoinList[5].replace("2000#", ""))
     items = poco("UI Root").child("HeaderPart").offspring("label_count")
     cash = int(items[0].get_text())
     coin = int(items[1].get_text())
     if cash >= coin3_metacash:
         Click('btn_confirm', page)
         time.sleep(2.0)
         coin_itemsNew = poco("UI Root").child("HeaderPart").offspring(
             "label_count")
         coin_cashnew = int(coin_itemsNew[0].get_text())
         coin_coinnew = int(coin_itemsNew[1].get_text())
         self.assertEqual(coin_coinnew, coin + coin3_meta, caseList[75])
         self.assertEqual(coin_cashnew, cash - coin3_metacash, caseList[76])
     else:
         Click('btn_confirm', page)
         coin1_cash_less_info = poco("label_info").get_text()
         cashtext = TextDic['shop_type_title_3']
         infotext = TextDic['shop_supplement']
         self.assertEqual(coin1_cash_less_info, infotext % cashtext,
                          caseList[77])
         coin1_less_botton = poco("label_btn_popup_orange").get_text()
         goaltext = TextDic['shop_guide']
         self.assertEqual(coin1_less_botton, goaltext, caseList[78])
         Click('label_btn_popup_orange', page)
         page = 'shopInterface'
         self.assertTrue(poco('tex_light').exists(),
                         caseList[79])  # 需要修改!!!
         Click('label_coin', page)
예제 #3
0
def test_journal_stats(dev, poco):

    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_stats:
        out('переходим во вкладку статистики')
        touch_center(dev, get_node_child(node_wnd_journal, btn_stats))
        time.sleep(1)

    # получаем заново, т.к. сцена обновилась
    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_stats:
        out('не перешли во вкладку статистики', '')
        return False

    ### ------------------------------------------------------------
    # тут тестов по сути нет, просто переход на вкладку

    return True
예제 #4
0
def test_reward_packages(poco, dev, row0, row1):
    # ## tood: вынести в отдельную функцию
    i = row0
    while i <= row1:
        time.sleep(1)
        # это обновляем постоянно
        node = wait_for_node_visible(poco, dr_wnd, 5)
        if not node.exists():
            out('Window not showed', dr_wnd)
            return False
        node = get_node_child(node, content)
        lst_days = node.child()

        # в общемто тут все элементы надо получать заново
        lst_rewards = lst_days[i].child('Rewards')
        ii = 0
        for btn in lst_rewards.child():
            out('touch reward[' + str(i) + '][' + str(ii) + ']')
            touch_center(dev, btn)
            time.sleep(1)
            node = wait_for_node_visible(poco, back_descr_bg, 0)
            if node.exists():
                touch_center(dev, wait_for_node_visible(poco, back_btn, 5))
            ii = ii + 1
        i = i + 1

    return True
예제 #5
0
def wait_and_click_button(dev, poco, button):
    node = wait_for_node_visible(poco, button, 5)
    if not node.exists():
        out('Button not showed', button)
        return False
    touch_center(dev, node)
    time.sleep(1)
    return True
예제 #6
0
 def test_A57(self):
     u"""测试点击返回城建按钮是否返回到城建界面"""
     page = 'shopInterface'
     Click('btn_back', page)
     #ui = poco.agent.hierarchy.dump()
     #frame = json.dumps(ui, indent=4)
     sleep(3.0)
     self.assertTrue(poco('c2_left').exists(), caseList[81])
     #self.assertIn('c2_left', frame, caseList[81])
     time.sleep(1.0)
예제 #7
0
def wait_for_button_and_touch(dev, poco, path):
    node = wait_for_node_visible(poco, path, 5)
    if node.exists():
        # тыкаем в кнопку
        touch_center(dev, node)
        time.sleep(1)
    else:
        out('Can\'t press button', path)
        return False

    return True
예제 #8
0
def run_test_journal(dev, poco):

    out("нажимаем кнопку journal")
    node = wait_for_node_visible(poco, btn_journal, 5)
    if not node.exists():
        out('Button not showed', btn_journal)
        return False
    touch_center(dev, node)
    time.sleep(1)

    # проверочка
    node = wait_for_node_visible(poco, wnd_journal, 2)
    if not node.exists():
        out('Window not showed', wnd_journal)
        return False

    ### ---------------------------------------

    # '''
    out('Тестируем вкладку Квестов')
    if not test_journal_quests(dev, poco):
        return False

    out('Тестируем вкладку Легенд')
    if not test_journal_legends(dev, poco):
        return False

    out('Тестируем вкладку имущества')
    if not test_journal_goods(dev, poco):
        return False
    # '''

    out('Тестируем вкладку статуса игрока')
    if not test_journal_status(dev, poco):
        return False

    out('Тестируем вкладку статистики')
    if not test_journal_stats(dev, poco):
        return False

    ### ---------------------------------------

    out('нажимаем кнопку выхода из окна журнала')
    node = wait_for_node_visible(poco, btn_back, 5)
    if not node.exists():
        out('Button not showed', btn_back)
        return False
    touch_center(dev, node)
    time.sleep(1)

    return True
예제 #9
0
def go_to_academia(dev, poco):
    out('нажимаем кнопку Академия')
    node = wait_for_node_visible(poco, btn_academy_on_map, 5)
    if not node.exists():
        out('Button not showed', btn_academy_on_map)
        return False
    touch_center(dev, node)
    time.sleep(1)
    
    state = find_current_state(poco)
    while state != State.TOWN:
        out('ждём академию (3 sec)')
        time.sleep(3)
        state = find_current_state(poco)

    # todo: иногда бывает сообщение о жаловании для команды
    # потом отловить момент и сделать тест
    
    # если почта, собираем
    node = wait_for_node_visible(poco, btn_mail, 1)
    if node.exists():
        touch_center(dev, node)
        time.sleep(1)
        node = wait_for_node_visible(poco, btn_back, 5)
        if not node.exists():
            out('Button not showed', btn_back)
            return False
        touch_center(dev, node)
        time.sleep(1)
        
    return True
예제 #10
0
def test_journal_legends(dev, poco):

    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_legends:
        out('переходим во вкладку легенд')
        touch_center(dev, get_node_child(node_wnd_journal, btn_legends))
        time.sleep(1)

    # получаем заново, т.к. сцена обновилась
    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_legends:
        out('не перешли во вкладку легенд', '')
        return False

    ### ------------------------------------------------------------

    node_legends_list = get_node_child(node_wnd_journal, wnd_legends)

    # перебераем всё по замороженной структуре
    i = 0
    for node_quest in node_legends_list.child():
        if node_quest.attr('type') == 'Button':
            i = i + 1
            out('legend[' + str(i) + ']: ' + node_quest.attr('text'))
            touch_center(dev, node_quest)
            time.sleep(0.5)
            # новый экземпляр ибо опять всё обновилось
            # journal = wait_for_node_visible(poco, wnd_journal, 2)
            # node = get_node_child(journal, wnd_descr)
            # out('quest descr: ' + node.attr('text'))

    return True
예제 #11
0
 def test_A10(self):
     u"""测试点击普通礼盒的提示弹窗的按钮"""
     page = 'purchase_popup'
     CostList = GetMeta("shop.xml", "costs")
     commonBox_metacoin = int(CostList[0].replace("2000#", ""))
     currency = poco("UI Root").child("HeaderPart").offspring("label_count")
     coin = int(currency[1].get_text())
     if coin >= commonBox_metacoin:
         Click('label_btn_popup_orange', page)
         page = 'openbox3_interface'
         Click('label_cishu', page)
         page = 'openbox4_interface'
         poco('label_share').wait_for_appearance()
         sleep(2.0)
         Click('label_cishu', page)
         page = 'openbox5_interface'
         poco('label_share').wait_for_appearance()
         sleep(2.0)
         Click('label_cishu', page)
         page = 'settleInterface'
         # 获取开完宝箱后的金币数量
         time.sleep(3.0)
         Click('label_ok', page)
         sleep(1.0)
         if poco('sprite_bg_header').exists():
             page = 'album_share'
             Click('btn_close', page)
             if poco('sprite_bg_header').exists():
                 page = 'album_share'
                 Click('btn_close', page)
         currencyNew = poco("UI Root").child("HeaderPart").offspring(
             "label_count")
         coinnew = int(currencyNew[1].get_text())
         # 检查前端金币数量变化是否正确
         self.assertEqual(coinnew, coin - commonBox_metacoin, caseList[11])
     else:
         Click('label_btn_popup_orange', page)
         page = 'shopInterface'
         self.assertTrue(poco('sprite_gold_1').exists(), caseList[12])
         Click('label_chest', page)
예제 #12
0
def reset_progress(dev, poco):
    out('Reset progress test started...')

    path = 'H_Canvas/USER_Main_UI/BASE_MENU+CHAT/Avr_bg/Avr_pause'
    if not (wait_for_button_and_touch(dev, poco, path)):
        return False

    path = 'H_Canvas/Settings_mobile SYS NEAR END/AVR_bg/ButtonsPanel/ResetSaveButton'
    if not (wait_for_button_and_touch(dev, poco, path)):
        return False

    # надо подтвердить сброс прогресса
    path = 'H_Canvas/Message - MUST BE NEAR END/AVR_bg_paper/AVR_bg/BtnPanel/Btn_1'
    if not (wait_for_button_and_touch(dev, poco, path)):
        return False

    # ждём на загрузку тутора 10 сек
    out('Wait for Loading Tutor 10 sec.')
    time.sleep(10)

    out('Reset progress test complete.')
    return True
예제 #13
0
def run_test_daily_rewards(dev, poco):

    out("нажимаем кнопку награды")
    node = wait_for_node_visible(poco, dr_btn, 5)
    if not node.exists():
        out('Button not showed', back_btn)
        return False
    touch_center(dev, node)

    time.sleep(1)

    ### ---------------------------------------
    # ## пробегаемся по первой страничке
    if not test_reward_packages(poco, dev, 0, 0):  # 0,4
        return False

    if not test_swipe_reward_packages(poco, 4, 0):
        return False
    # ## пробегаемся по второй страничке
    if not test_reward_packages(poco, dev, 5, 5):  # 5,10
        return False

    if not test_swipe_reward_packages(poco, 9, 5):
        return False

    # ## пробегаемся по последней страничке
    if not test_reward_packages(poco, dev, 11, 13):  # 11,13
        return False
    ### ---------------------------------------

    out('нажимаем кнопку выхода из окна наград')
    node = wait_for_node_visible(poco, back_btn, 5)
    if not node.exists():
        out('Button not showed', back_btn)
        return False
    touch_center(dev, node)
    time.sleep(1)

    # дополнительная проверка на выход из окна наград
    node = wait_for_node_visible(poco, dr_wnd, 2)
    while node.exists():
        out("window not closed", dr_wnd)
        node = wait_for_node_visible(poco, back_btn, 5)
        if not node.exists():
            out('Button not showed', back_btn)
            return False
        touch_center(dev, node)
        time.sleep(1)
        node = wait_for_node_visible(poco, dr_wnd, 2)

    return True
예제 #14
0
def run_test_faction(dev, poco):

    out("нажимаем кнопку Fraction")
    node = wait_for_node_visible(poco, btn_faction, 5)
    if not node.exists():
        out('Button not showed', btn_faction)
        return False
    touch_center(dev, node)
    time.sleep(1)

    # проверочка
    node_wnd_faction = wait_for_node_visible(poco, wnd_faction, 2)
    if not node_wnd_faction.exists():
        out('Window not showed', wnd_faction)
        return False

    ### ---------------------------------------

    node_lst = get_node_child(node_wnd_faction, _faction_lst)
    if not node_lst.exists():
        out('Window not showed', node_lst)
        return False

    for item in node_lst.child():
        touch_center(dev, item)
        time.sleep(0.5)

    ### ---------------------------------------

    out('нажимаем кнопку выхода из окна выбора фракции')
    node = wait_for_node_visible(poco, btn_back, 5)
    if not node.exists():
        out('Button not showed', btn_back)
        return False
    touch_center(dev, node)
    time.sleep(1)

    return True
예제 #15
0
 def test_A7(self):
     u"""测试点击普通礼盒的购买按钮是否弹出提示弹窗"""
     page = 'shopInterface'
     Click('btn_cost', page)
     time.sleep(2.0)
     self.assertTrue(poco('label_btn_popup_orange').exists(), caseList[6])
예제 #16
0
def test_journal_status(dev, poco):

    btn_hawk = 'HAWK'
    btn_baran = 'BARAN'
    btn_spider = 'SPIDER'
    btn_rabbit = 'RABBIT'
    btn_snake = 'SNAKE'

    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_status:
        out('переходим во вкладку статуса игрока')
        touch_center(dev, get_node_child(node_wnd_journal, btn_status))
        time.sleep(1)

    # получаем заново, т.к. сцена обновилась
    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_status:
        out('не перешли во вкладку статуса игрока', '')
        return False

    ### ------------------------------------------------------------

    node_wnd_status = get_node_child(node_wnd_journal, wnd_status)

    touch_center(dev, get_node_child(node_wnd_status, btn_hawk))
    time.sleep(0.5)
    touch_center(dev, get_node_child(node_wnd_status, btn_baran))
    time.sleep(0.5)
    touch_center(dev, get_node_child(node_wnd_status, btn_spider))
    time.sleep(0.5)
    touch_center(dev, get_node_child(node_wnd_status, btn_rabbit))
    time.sleep(0.5)
    touch_center(dev, get_node_child(node_wnd_status, btn_snake))
    time.sleep(0.5)

    return True
예제 #17
0
def run_test_tutorial_2(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_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_2 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (1)'
    btn_quest_3 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (2)'
    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'
    
    ### ---------------------------------------   
    
    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_2): return False
    # тыкаем принять
    if not wait_and_click_button(dev, poco, btn_accept_qst): return False
    
    # тыкаем 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_team'
    btn_team = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_team'
    if not wait_and_click_button(dev, poco, btn_team): return False
    
    # сообщение "Сначала наймем команду"
    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

    # тыкаем 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/TeamManageShipMobile/ScrollingPanel/TavernButton'
    btn_tavern = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageShipMobile/ScrollingPanel/TavernButton'
    if not wait_and_click_button(dev, poco, btn_tavern): return False

    # сообщение "Найми 7 салаг."
    node = wait_for_node_visible(poco, wnd_event_reward, 5)
    if not node.exists():
        out('долгое ожидание сообщения', 'нет сообщения "Найми 7 салаг."')
        return False
    if not wait_and_click_button(dev, poco, btn_back): return False

    # тыкаем 7 раз на салагу "+" 
    # 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/TeamManageShipMobile/ScrollingPanel/TavernButton'
    btn_crewman_hire_0 = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageTavernMobile/TavernBgImage/Crewman_Hire_0/ActionButton'
    i = 7
    while i > 0:
        if not wait_and_click_button(dev, poco, btn_crewman_hire_0): return False
        i -= 1
    # тыкаем кнопку назад
    if not wait_and_click_button(dev, poco, btn_back): return False
        
    # сообщение "перетащите 2х матросов на паруса"
    node = wait_for_node_visible(poco, wnd_event_reward, 5)
    if not node.exists():
        out('долгое ожидание сообщения', 'перетащите 2х матросов на паруса')
        return False
    if not wait_and_click_button(dev, poco, btn_back): return False        
        
    # подготавливаемся к свайпам
    sn_tmp = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageShipMobile/ScrollingPanel/ShipDecks'
    sn_parus = 'ParuDeck/CrewmanDeck_Paru_3'
    sn_aboard = 'AboardDeck/CrewmanDeck_Aboard_3'
    sn_cannon = 'CanonDeck/CrewmanDeck_Canon_3'
    sn_from = 'AboardDeck/CrewmanDeck_Aboard_0'

    node_tmp = wait_for_node_visible(poco, sn_tmp, 5)
    pos_parus = get_node_child(node_tmp, sn_parus).attr('pos')
    pos_aboard = get_node_child(node_tmp, sn_aboard).attr('pos')
    pos_cannon = get_node_child(node_tmp, sn_cannon).attr('pos')
    
    pos_abs_from = pos_center(dev, get_node_child(node_tmp, sn_from))
    
    # перетаскиваем 2х матросов на паруса
    vec = [0, pos_parus[1] - pos_aboard[1]]
    print('vector ', pos_abs_from, vec)
    swipe(pos_abs_from, vector=vec, duration=3)
    sleep(1)
    swipe(pos_abs_from, vector=vec, duration=3)
    sleep(1)

    # сообщение "перетащите 2х матросов на паруса"
    node = wait_for_node_visible(poco, wnd_event_reward, 5)
    if not node.exists():
        out('долгое ожидание сообщения', 'перетащите 2х матросов на пушки')
        return False
    if not wait_and_click_button(dev, poco, btn_back): return False        

    # перетаскиваем 2х матросов на пушки
    vec = [0, pos_cannon[1] - pos_aboard[1]]
    print('vector ', pos_abs_from, vec)
    swipe(pos_abs_from, vector=vec, duration=3)
    sleep(1)
    swipe(pos_abs_from, vector=vec, duration=3)
    sleep(1)

    # сообщение "больше матросов на палубе, больше эффективность"
    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        

    # тыкаем на кнопку "Раненые" 
    btn_med = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageShipMobile/ScrollingPanel/MedbayButton'
    if not wait_and_click_button(dev, poco, btn_med): return False

    # тыкаем на кнопку "лечить матроса" 
    btn_med = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageShipMobile/ScrollingPanel/ShipDecks/'\
        +'Medbay/Crewman_Wounded_1/ActionButton'
    if not wait_and_click_button(dev, poco, btn_med): return False

    # сообщение "про офицеров, выбрать"
    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        

    # тыкаем на кнопку "слот офицера 1" 
    btn_med = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageShipMobile/ScrollingPanel/RightPanel/'\
        +'DeckStats_Paru/BorderImage/OfficerSlotsPanel/OfficerSlot1'
    if not wait_and_click_button(dev, poco, btn_med): return False
    
    # тыкаем на кнопку "боцман" 
    btn_med = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageShipMobile/OfficersWindow/BgImage/'\
        +'BorderImage/SlotsPanel/OfficerSlot1'
    if not wait_and_click_button(dev, poco, btn_med): return False

    # тыкаем на кнопку "назначить" 
    btn_med = 'H_Canvas/USER_Main_UI/CONFIG_TEAM_MOBILE/'\
        +'TeamManageShipMobile/OfficersWindow/BgImage/'\
        +'BorderImage/ActionButton(Clone)'
    if not wait_and_click_button(dev, poco, btn_med): return False

    time.sleep(2);

    # сообщение "вот ваша награда"
    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        
    
    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_3): 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
예제 #18
0
 def test_A32(self):
     u"""测试点击豪华礼盒的提示弹窗的按钮"""
     page = 'purchase_popup'
     CostList = GetMeta("shop.xml", "costs")
     luxuryBox_metacash = int(CostList[2].replace("3000#", ""))
     if not TsumDrop_dic and not FixedRewards_dic:
         chestlevel(TsumDrop_dic, FixedRewards_dic)
     luxuryBox_meta_coin = int(
         FixedRewards_dic["2003"][userlevel].split("#")[1])
     itemsOld = poco("UI Root").child("HeaderPart").offspring("label_count")
     cashold = int(itemsOld[0].get_text())
     coinold = int(itemsOld[1].get_text())
     if cashold >= luxuryBox_metacash:
         Click('label_btn_popup_orange', page)
         page = 'openbox1_interface'
         Click('label_cishu', page)
         page = 'openbox2_interface'
         poco('label_share').wait_for_appearance()
         sleep(2.0)
         Click('label_cishu', page)
         page = 'openbox3_interface'
         poco('label_share').wait_for_appearance()
         sleep(2.0)
         Click('label_cishu', page)
         page = 'openbox4_interface'
         poco('label_share').wait_for_appearance()
         sleep(2.0)
         Click('label_cishu', page)
         page = 'openbox5_interface'
         poco('label_share').wait_for_appearance()
         sleep(2.0)
         Click('label_cishu', page)
         page = 'settleInterface'
         # 获取高级礼盒开出的金币数量
         luxury_tsumList = poco("UI Root").child(
             "ChestRewardPanel").offspring("label_count")
         luxury_getcoin = int(luxury_tsumList[0].get_text().replace(
             "+", ""))
         # 检查数量是否正确
         self.assertEqual(luxury_getcoin, luxuryBox_meta_coin, caseList[41])
         time.sleep(3.0)
         Click('label_ok', page)
         sleep(1.0)
         if poco('sprite_bg_header').exists():
             page = 'album_share'
             Click('btn_close', page)
             if poco('sprite_bg_header').exists():
                 page = 'album_share'
                 Click('btn_close', page)
         luxury_itemsNew = poco("UI Root").child("HeaderPart").offspring(
             "label_count")
         luxury_cashnew = int(luxury_itemsNew[0].get_text())
         luxury_coinnew = int(luxury_itemsNew[1].get_text())
         # 检查前端金币数量变化是否正确
         self.assertEqual(luxury_cashnew, cashold - luxuryBox_metacash,
                          caseList[42])
         self.assertEqual(luxury_coinnew, coinold + luxuryBox_meta_coin,
                          caseList[43])
     else:
         Click('label_btn_popup_orange', page)
         page = 'shopInterface'
         self.assertTrue(poco('tex_light').exists(), caseList[44])
         Click('label_chest', page)
예제 #19
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
예제 #20
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
예제 #21
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
예제 #22
0
def run_test(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_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_3 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (2)'
    btn_quest_4 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (3)'
    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'

    ### ---------------------------------------

    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_3): return False
    # тыкаем принять
    if not wait_and_click_button(dev, poco, btn_accept_qst): return False

    # тыкаем 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_trum'
    btn_trum = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_trum'
    if not wait_and_click_button(dev, poco, btn_trum): return False

    # тыкаем купить ядра
    btn_path = 'H_Canvas/USER_Main_UI/TRUM_STORE_STORAGE/'\
        +'MARKET/M_Button_buy_Canonballs'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # выбираем ядра
    btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\
        +'ItemsWindow/ScroolArea/ItemList/Item1'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # выбираем х10
    btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\
        +'SellWindowBG/SellWindow/AmountSelector/Center'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # тыкаем купить 10
    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

    # покидаем режим магазина
    if not wait_and_click_button(dev, poco, btn_back): return False

    # сообщение "товары можно переместить на склад или продать"
    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

    # тыкаем ядра в трюме
    btn_path = 'H_Canvas/USER_Main_UI/TRUM_STORE_STORAGE/'\
        +'SHIP/T_Button_buy_Canonballs'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # выбираем ядра
    btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\
        +'ItemsWindow/ScroolArea/ItemList/Item1'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # выбираем х10
    btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\
        +'SellWindowBG/SellWindow/AmountSelector/Center'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # тыкаем на склад 10
    btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\
        +'SellWindowBG/SellWindow/SellTen/SellTenBTN'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # сообщение "также можно продать любую вещь"
    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

    # выбираем ядра
    btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\
        +'ItemsWindow/ScroolArea/ItemList/Item1'
    if not wait_and_click_button(dev, poco, btn_path): return False

    # выбираем х1
    btn_path = 'H_Canvas/USER_Main_UI/HOLD_WINDOW/'\
        +'SellWindowBG/SellWindow/AmountSelector/Left'
    if not wait_and_click_button(dev, poco, btn_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

    # покидаем режим трюма
    if not wait_and_click_button(dev, poco, btn_back): return False

    time.sleep(2)

    # сообщение "вот ваша награда"
    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

    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_4): 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
예제 #23
0
def test_journal_goods(dev, poco):

    node_btn_back = wait_for_node_visible(poco, btn_back, 2)
    wnd_goods_opt = wnd_journal + '/' + wnd_goods

    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_goods:
        out('переходим во вкладку имущества')
        touch_center(dev, get_node_child(node_wnd_journal, btn_goods))
        time.sleep(1)

    # получаем заново, т.к. сцена обновилась
    node_wnd_journal = wait_for_node_visible(poco, wnd_journal, 2)
    if not node_wnd_journal.exists():
        out('Window not showed', wnd_journal)
        return False

    if get_journal_state(node_wnd_journal) != js_goods:
        out('не перешли во вкладку имущества', '')
        return False

    ### ------------------------------------------------------------
    node_wnd_goods = wait_for_node_visible(poco, wnd_goods_opt, 2)
    node_btn_trum = get_node_child(node_wnd_goods, 'Trum')
    # node_btn_sklads = get_node_child(node_wnd_goods, 'Sklads')
    # node_btn_WhereToBuy = get_node_child(node_wnd_goods, 'WhereToBuy')

    # out('click:' + node_btn_trum.attr('text'))
    touch_center(dev, node_btn_trum)

    node_wnd_goods = wait_for_node_visible(poco, wnd_goods_opt, 2)
    items = node_wnd_goods.offspring('Towars')
    if len(items) > 0:
        i = 0
        for item in items:
            i = i + 1
            if i < 3:
                touch_center(dev, item)
                time.sleep(0.5)
                touch_center(dev, node_btn_back)
                time.sleep(0.5)
    else:
        out('trum list is empty')

    ### ------------------------------------------------------------
    node_wnd_goods = wait_for_node_visible(poco, wnd_goods_opt, 2)
    # node_btn_trum = get_node_child(node_wnd_goods, 'Trum')
    node_btn_sklads = get_node_child(node_wnd_goods, 'Sklads')
    # node_btn_WhereToBuy = get_node_child(node_wnd_goods, 'WhereToBuy')

    # out('click:' + node_btn_trum.attr('text'))
    touch_center(dev, node_btn_sklads)

    node_wnd_goods = wait_for_node_visible(poco, wnd_goods_opt, 2)
    items = node_wnd_goods.offspring('Towars')
    if len(items) > 0:
        i = 0
        for item in items:
            i = i + 1
            if i < 3:
                touch_center(dev, item)
                time.sleep(0.5)
                touch_center(dev, node_btn_back)
                time.sleep(0.5)
    else:
        out('sklads list is empty')

    ### ------------------------------------------------------------
    node_wnd_goods = wait_for_node_visible(poco, wnd_goods_opt, 2)
    # node_btn_trum = get_node_child(node_wnd_goods, 'Trum')
    # node_btn_sklads = get_node_child(node_wnd_goods, 'Sklads')
    node_btn_WhereToBuy = get_node_child(node_wnd_goods, 'WhereToBuy')

    # out('click:' + node_btn_trum.attr('text'))
    touch_center(dev, node_btn_WhereToBuy)

    node_wnd_goods = wait_for_node_visible(poco, wnd_goods_opt, 2)
    items = node_wnd_goods.offspring('Towars')
    if len(items) > 0:
        i = 0
        for item in items:
            i = i + 1
            if i < 3:
                touch_center(dev, item)
                time.sleep(0.5)
                touch_center(dev, node_btn_back)
                time.sleep(0.5)
    else:
        out('WhereToBuy list is empty')

    return True
예제 #24
0
def run_test(dev, poco):
    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_10 = '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_10): return False
    # тыкаем принять
    if not wait_and_click_button(dev, poco, path_accept_qst): return False
    
    # тыкаем 'умения капитана'
    path_node = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_Xp_captain'
    if not wait_and_click_button(dev, poco, path_node): return False
    time.sleep(1);

    # сообщение 'выбрать умение чтобы его изучить'
    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        
    time.sleep(1);

    # пробежимся по всем скилам
    path_root_skills = 'H_Canvas/USER_Main_UI/CONFIG_SKILLS'
    path_learn = 'H_Canvas/USER_Main_UI/CONFIG_SKILLS/Learn(Clone)'
    subpath_skills = ['Some Skill', 'Some Skill (14)', \
                      'Some Skill (1)', 'Some Skill (15)', \
                      'Some Skill (6)', 'Some Skill (20)', \
                      'Some Skill (3)', 'Some Skill (17)', \
                      'Some Skill (4)', 'Some Skill (18)', \
                      'Some Skill (5)', 'Some Skill (19)']
    
    node_root_skills = wait_for_node_visible(poco, path_root_skills, 5)
    if not node_root_skills.exists():
        out('долгое ожидание ноды списка', path_root_skills)
        return False
    
    for subpath in subpath_skills:
        # node = wait_for_node_visible(poco, path_root_skills + '/' + subpath)
        node = get_node_child(node_root_skills, subpath)
        if not node.exists():
            out('скилл не найден', path_root_skills + ' ' + subpath)
            return False
        touch_center(dev, node)
        # snapshot()
        time.sleep(0.5);

    # тыкаем "изучить"
    if not wait_and_click_button(dev, poco, path_learn): 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        
    
    ### ---------------------------------------    
        
    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
예제 #25
0
 def sleep(t):
     time.sleep(t + random.uniform(0, 0.3))
예제 #26
0
def run_test(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_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_5 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (4)'
    btn_quest_6 = 'H_Canvas/USER_Main_UI/CONFIG_QWESTS/AVR_bg_paper/AVR_bg/A1 (5)'
    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'

    ### ---------------------------------------

    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_5): return False
    # тыкаем принять
    if not wait_and_click_button(dev, poco, btn_accept_qst): return False

    # тыкаем 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_equip'
    btn_path = 'H_Canvas/USER_Main_UI/CONFIG/AllButtons/Button_equip'
    if not wait_and_click_button(dev, poco, btn_path): return False
    time.sleep(2)

    # подготавливаемся к свайпу
    sn_item_list = 'H_Canvas/USER_Main_UI/CONFIG_EQUIP_MAIN/'\
        +'ItemsBG/ScrollItems/Viewport/ItemList'
    sn_slot_canon = 'H_Canvas/USER_Main_UI/CONFIG_EQUIP_MAIN/Slots/Canon_1'
    sn_slot_canon_sub = 'H_Canvas/USER_Main_UI/CONFIG_EQUIP_MAIN/Slots/Canon_1/sub_1'
    node_slot = wait_for_node_visible(poco, sn_slot_canon, 5)
    node_slot_sub = wait_for_node_visible(poco, sn_slot_canon_sub, 5)

    # перетаскиваем пушку в слот
    node_item_list = wait_for_node_visible(poco, sn_item_list, 5)
    node_from = node_item_list.child()[0]
    pos_abs_from = pos_center(dev, node_from)
    pos_from = pos_center(dev, node_from, False)
    pos_to = pos_center(dev, node_slot, False)
    vec = [pos_to[0] - pos_from[0], pos_to[1] - pos_from[1]]
    print('vector ', pos_abs_from, vec)
    swipe(pos_abs_from, vector=vec, duration=3)
    time.sleep(1)

    # перетаскиваем улучшение в слот
    node_item_list = wait_for_node_visible(poco, sn_item_list, 5)
    node_from = node_item_list.child()[0]
    pos_abs_from = pos_center(dev, node_from)
    pos_from = pos_center(dev, node_from, False)
    pos_to = pos_center(dev, node_slot_sub, False)
    vec = [pos_to[0] - pos_from[0], pos_to[1] - pos_from[1]]
    print('vector ', pos_abs_from, vec)
    swipe(pos_abs_from, vector=vec, duration=3)
    time.sleep(1)

    # выходим из окна улучшений
    if not wait_and_click_button(dev, poco, btn_back): return False

    time.sleep(2)

    # сообщение "вот ваша награда"
    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

    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_6): 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
예제 #27
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
예제 #28
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
예제 #29
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