def test_routing_metro_one_map(self, main, download_moscow_map, steps, r_steps): """ Метро Динамо -> метро Технопарк """ panel = BottomPanel() steps.search("метро Динамо") steps.choose_first_search_result() panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("метро Технопарк", click_search_button=False) steps.choose_first_search_result() r_steps.wait_route_start() steps.try_get(Locator.ROUTING_METRO.get()).click() r_steps.wait_metro_panel() steps.press_back_until_main_page() steps.search("метро Динамо") steps.choose_first_search_result() panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("метро Технопарк", click_search_button=False) steps.choose_first_search_result() r_steps.wait_metro_panel()
def test_routing_pay_and_bad_roads_only_auto(self, main, steps, r_steps): """https://testrail.corp.mail.ru/index.php?/tests/view/36653881""" steps.download_map(LocalizedMapsNames.GREAT_BRITAIN, None, LocalizedMapsNames.LONDON) panel = BottomPanel() steps.search("метро Алексеевская") steps.choose_first_search_result() panel.to().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() r_steps.wait_route_start() assert steps.try_get(Locator.DRIVING_OPTIONS.get( )) is None or steps.try_get( Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false' steps.press_back_until_main_page() steps.search("Compton Park") sleep(10) steps.choose_first_search_result( category=LocalizedCategories.PARK.get()) panel.route_from().click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("Errol Street", click_search_button=False) steps.choose_first_search_result() r_steps.wait_route_start() steps.try_get(Locator.DRIVING_OPTIONS.get()).click() sleep(2) steps.driver.back() steps.try_get(Locator.ROUTING_BIKE.get()).click() r_steps.wait_route_start() assert steps.try_get(Locator.DRIVING_OPTIONS.get( )) is None or steps.try_get( Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false' steps.try_get(Locator.ROUTING_WALK.get()).click() r_steps.wait_route_start() assert steps.try_get(Locator.DRIVING_OPTIONS.get( )) is None or steps.try_get( Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false' steps.try_get(Locator.ROUTING_METRO.get()).click() r_steps.wait_metro_panel() assert steps.try_get(Locator.DRIVING_OPTIONS.get( )) is None or steps.try_get( Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false' steps.try_get(Locator.ROUTING_TAXI.get()).click() r_steps.wait_taxi_panel() assert steps.try_get(Locator.DRIVING_OPTIONS.get( )) is None or steps.try_get( Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false'
def test_routing_metro_taxi_back(self, main, download_moscow_map, steps, r_steps, search_steps): """Метро Динамо -> метро Парк Победы -> метро Строгино -> метро Алексеевская""" panel = BottomPanel() points = [] if get_settings("System", "platform") == "Android": points = ["метро Парк Победы", "метро Строгино"] steps.search("метро Динамо") steps.choose_first_search_result() points.append(steps.pp_get_title()) panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("метро Алексеевская", click_search_button=False) points.append(search_steps.get_first_search_name()) sleep(1) steps.choose_first_search_result() steps.search("метро Парк Победы") steps.choose_first_search_result() points.append(steps.pp_get_title()) r_steps.click_add_stop() steps.search("метро Строгино") steps.choose_first_search_result() points.append(steps.pp_get_title()) r_steps.click_add_stop() steps.try_get(Locator.ROUTING_METRO.get()).click() r_steps.wait_metro_panel() r_steps.assert_route_points(2, True, *points) sleep(1) steps.try_get(Locator.ROUTING_TAXI.get()).click() r_steps.wait_taxi_panel() steps.try_get(Locator.ROUTING_METRO.get()).click() r_steps.wait_metro_panel() r_steps.assert_route_points(2, True, *points)
def test_routing_auto_taxi_back(self, main, download_moscow_map, steps, r_steps, search_steps): """Метро Динамо -> метро Сокол -> метро Беляево -> метро Алексеевская https://testrail.corp.mail.ru/index.php?/tests/view/36653927""" panel = BottomPanel() points = [] if get_settings("System", "platform") == "Android": points = ["метро Сокол", "метро Беляево"] steps.search("метро Динамо") steps.choose_first_search_result() points.append(steps.pp_get_title()) panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("метро Алексеевская", click_search_button=False) points.append(search_steps.get_first_search_name()) steps.choose_first_search_result() sleep(1) steps.search("метро Сокол") steps.choose_first_search_result() points.append(steps.pp_get_title()) r_steps.click_add_stop() sleep(1) steps.search("метро Беляево") steps.choose_first_search_result() points.append(steps.pp_get_title()) r_steps.click_add_stop() r_steps.wait_route_start() sleep(1) steps.try_get(Locator.ROUTING_TAXI.get()).click() r_steps.wait_taxi_panel() steps.try_get(Locator.ROUTING_CAR.get()).click() r_steps.assert_route_points(2, True, *points)
def test_routing_taxi_p2p(self, main, download_moscow_map, steps, r_steps): """Метро Строгино -> метро Алексеевская""" panel = BottomPanel() steps.search("метро Строгино") steps.choose_first_search_result() sleep(1) panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("метро Алексеевская", click_search_button=False) steps.choose_first_search_result() sleep(2) steps.try_get(Locator.ROUTING_TAXI.get()).click() r_steps.wait_taxi_panel() r_steps.assert_taxi_install_button()
def test_routing_metro_two_maps(self, main, download_moscow_map, steps, r_steps): """ Метро Динамо -> Чехов. Ожидается ошибка построения маршрута https://testrail.corp.mail.ru/index.php?/tests/view/36653589""" panel = BottomPanel() steps.search("метро Динамо") steps.choose_first_search_result() panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("Чехов", click_search_button=False) steps.choose_first_search_result() r_steps.download_additional_maps() steps.try_get(Locator.ROUTING_METRO.get()).click() r_steps.wait_route_too_long()
def test_unpaved_roads(self, main, steps, r_steps): """https://testrail.corp.mail.ru/index.php?/tests/view/36653901""" steps.download_map(LocalizedMapsNames.SPAIN, None, LocalizedMapsNames.SEVILLE) panel = BottomPanel() steps.press_back_until_main_page() steps.search( "Huerto de Cubiches") #Huerta Vieja El Algarobbo El Chaparro Puyol steps.choose_first_search_result() panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("Sierra de Ojen", click_search_button=False) steps.choose_first_search_result( category=LocalizedCategories.MOUNTAIN.get()) r_steps.download_additional_maps() r_steps.wait_route_start() #steps.try_get(Locator.ZOOM_IN.get()).click() #steps.try_get(Locator.ZOOM_IN.get()).click() assert steps.try_get(Locator.DRIVING_OPTIONS.get()) sleep(5) filename = "unpaved_road.png" steps.driver.get_screenshot_as_file(filename) coor = self.get_coords_proportions( filename, proportions=steps.driver.get_window_size()) TouchAction(steps.driver).tap( x=round(coor[0] * steps.driver.get_window_size()["width"]), y=round(coor[1] * steps.driver.get_window_size()["height"])).perform() assert steps.try_get_by_text( LocalizedButtons.AVOID_UNPAVED_ROADS.get()) assert steps.try_get_by_text(LocalizedButtons.UNPAVED_ROAD.get(), strict=False)
def test_ferry_roads(self, main, steps, r_steps): """https://testrail.corp.mail.ru/index.php?/tests/view/36653902""" steps.download_map(LocalizedMapsNames.ITALY, None, LocalizedMapsNames.SICILY) panel = BottomPanel() steps.press_back_until_main_page() steps.search("Cascate Cataolo") steps.choose_first_search_result() panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("Vulcano Porto", click_search_button=False) steps.choose_first_search_result() r_steps.download_additional_maps() r_steps.wait_route_start() # steps.try_get(Locator.ZOOM_IN.get()).click() assert steps.try_get(Locator.DRIVING_OPTIONS.get()) sleep(5) filename = "ferry_road.png" steps.driver.get_screenshot_as_file(filename) coor = self.get_coords_proportions( filename, proportions=steps.driver.get_window_size()) logging.info(str(coor)) TouchAction(steps.driver).tap( x=round(coor[0] * steps.driver.get_window_size()["width"]) + 10, y=round(coor[1] * steps.driver.get_window_size()["height"]) + 10).perform() assert steps.try_get_by_text(LocalizedButtons.AVOID_FERRY_ROADS.get()) assert steps.try_get_by_text(LocalizedButtons.FERRY_ROAD.get(), strict=False)
def test_route_manager(self, main, download_moscow_map, steps, r_steps, search_steps): """Метро Динамо -> метро Парк Победы -> метро Строгино -> метро Алексеевская""" panel = BottomPanel() points = [] steps.search("метро Динамо") steps.choose_first_search_result() points.append(steps.pp_get_title()) panel.route_from().click() el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get()) if el: el.click() steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click() steps.search("метро Алексеевская", click_search_button=False) points.append(search_steps.get_first_search_name()) sleep(1) steps.choose_first_search_result() steps.search("метро Парк Победы") steps.choose_first_search_result() points.append(steps.pp_get_title()) r_steps.click_add_stop() steps.search("метро Строгино") steps.choose_first_search_result() points.append(steps.pp_get_title()) r_steps.click_add_stop() steps.try_get(LocalizedButtons.MANAGE_ROUTE.get()).click() stop_a = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[1] stop_a_name = stop_a.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text coords_a = stop_a.find_elements_by_xpath( "./*[@type='XCUIElementTypeImage']")[1].location stop_start = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[0] stop_start_name = stop_start.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text stop_b = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[2] stop_b_name = stop_b.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text stop_finish = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[3] stop_finish_name = stop_finish.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text coords_finish = stop_finish.find_elements_by_xpath( "./*[@type='XCUIElementTypeImage']")[1].location actions = TouchAction(steps.driver) try: actions.press(None, coords_a["x"], coords_a["y"]) \ .wait(4000).move_to(None, coords_finish["x"], coords_finish["y"]).release().perform() except WebDriverException: pass steps.try_get(LocalizedButtons.PLAN.get()).click() sleep(5) steps.try_get(LocalizedButtons.MANAGE_ROUTE.get()).click() stop_start = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[0] assert stop_start_name == stop_start.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text stop_a = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[1] assert stop_b_name == stop_a.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text stop_b = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[2] assert stop_finish_name == stop_b.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text stop_finish = steps.driver.find_elements_by_xpath( "//*[@type='XCUIElementTypeCell']")[3] assert stop_a_name == stop_finish.find_element_by_xpath( "./*[@type='XCUIElementTypeStaticText']").text