def go_main(driver, phone=None, email=None, passwd=None, flag_auth=True, flag_api=True): """ Универсальный переход на главную страницу. :param driver: ссылка на драйвер :param phone: номер телефона :param email: электронная почта :param passwd: пароль :param flag_auth: флаг авторизации """ from support.utils.variables import EVariable env_base_url = EVariable.front_base.url.strip() # авторизоваться через API if flag_auth: service_log.put("To authorization via API") if flag_api: if email is None and phone is not None: HelpAuthMethods.set_authorization_by_phone(driver, phone, passwd) elif email is not None and phone is None: # TODO pass else: msg_error = "Not correct params." service_log.error(msg_error) assert AssertionError(msg_error) else: if email is None and phone is not None: HelpNavigateCheckMethods.get_page(driver, HelpNavigateCheckMethods.path_auth.PATH_AUTH) obj_phone, obj_password, obj_submit_button = HelpAuthCheckMethods.get_data_authorization(driver) # Вводим данные на авторизацию l = lambda e, p:e if p is None else p HelpAuthCheckMethods.send_phone(phone_object=obj_phone, phone_number=l(email, phone)) HelpAuthCheckMethods.send_password(password_object=obj_password, password_number=passwd) # Нажатие на кнопку авторизации HelpNavigateCheckMethods.element_click(driver, obj_submit_button, change_page_url=True) time.sleep(HelpNavigateCheckMethods.time_sleep) elif email is not None and phone is None: # TODO pass else: msg_error = "Not correct params." service_log.error(msg_error) assert AssertionError(msg_error) service_log.put("To authorization via API - success.") service_log.put("Get page: %s" % env_base_url) do_get_work = time.time() driver.get(env_base_url) work_get_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Onload event time: [%s]" % work_get_time) HelpNavigateCheckMethods.progress(driver) work_load_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Page received: %s" % env_base_url) service_log.put("Page received time: %s" % work_load_time) time.sleep(3)
def go_authorization_page(driver, env_base_url=MainClass.ENV_BASE_URL, sleep=2): """ Авторизоваться через главную страницу. :param driver: ссылка на драйвер :param env_base_url: адрес главной страницы :param sleep: ожидание пока страница прогрузиться """ service_log.put("Get page: %s" % env_base_url) do_get_work = time.time() driver.get(env_base_url) work_get_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Onload event time: [%s]" % work_get_time) HelpNavigateCheckMethods.progress(driver) work_load_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Page received: %s" % env_base_url) service_log.put("Page received time: %s" % work_load_time) reg_log_btn = HelpNavigateCheckMethods.get_element_navigate(driver, HelpAuthData.click_main.BUTTON_REG_AN_LOGIN) HelpAuthCheckMethods.click_button(reg_log_btn) login_button = HelpNavigateCheckMethods.get_element_navigate(driver, HelpAuthData.click_main.BUTTON_LOGIN, mode=None) login_button.is_displayed() login_button.is_enabled() HelpNavigateCheckMethods.element_click(driver, login_button)
def go_registration_page(driver, type_xpath=1, env_base_url=MainClass.ENV_BASE_URL, sleep=2): """ Переход на страницу регистрации. :param driver: ссылка на драйвер :param type_xpath: тип перехода по xpath :param sleep: задержка в миллесекундах """ registration_button = None if type_xpath == 1: registration_button = HelpNavigateCheckMethods.element_is_present(driver, HelpAuthData.REGISTRATION_PAGE) # time.sleep(sleep) elif type_xpath == 2: service_log.put("Get page: %s" % env_base_url) do_get_work = time.time() driver.get(env_base_url) work_get_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Onload event time: [%s]" % work_get_time) HelpNavigateCheckMethods.progress(driver) work_load_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Page received: %s" % env_base_url) service_log.put("Page received time: %s" % work_load_time) registration_button = HelpNavigateCheckMethods.element_is_present(driver, HelpAuthData.click_main.BUTTON_REG_AN_LOGIN) registration_button.click() time.sleep(sleep)
def see_content(driver, see_time, wait=5): """ Метод проверяет наличие активной кнопки домой :param driver: :return: """ flag_fast_pass = True do_time = time.time() while time.time() - do_time < wait: try: Navigate.find_element_by_xpath_fast(driver, Navigate.check_main.MAIN_MENU_HOME_ACTIVE) work_time = Navigate.work_time(do_time) fail = 0 break except NoSuchElementException: flag_fast_pass = False work_time = wait fail = 1 if flag_fast_pass is True: return see_time, fail else: return work_time, fail
def test_add_good_in_deal_to_favorite_remove(self, test_data=HelpNavigateData.CATALOG_TO_GOOD, sleep=2): """ Title: Добавить товар в избранное \ Удалить товар из избранного """ service_log.run(self) # Берем тестового продавца на магазине которого будут проводиться проверки self.default_test_seller_id = AccountingMethods.get_default_user_id(role="buyer") self.user = databases.db1.accounting.get_user_by_account_id(self.default_test_seller_id)[0] AccountingMethods.save_user_password(user_id=self.user["id"], hash_passwd=self.user["code_value"]) # Устанавливаем новый пароль для пользователя default_new_passwd = AccountingMethods.get_default_password() hash_res_new = generate_sha256(default_new_passwd, self.user["salt"]) databases.db1.accounting.update_user_password(self.user["id"], hash_res_new) self.go_main(self.driver, phone=self.user["phone"], passwd=default_new_passwd, flag_auth=True) number_good = random.randrange(1, 10, 1) # test_data["start_xpath_good"] = self.click_catalog.GOOD_LNK # Переходим на все товары рандомной рутовой категории self.get_page(self.driver, self.path_category.URL_ALL_IN_CATEGORY % random.choice(self.ROOT_CATEGORY_SUITE)) # Выбираем товар и сохраняем его имя service_log.put("Выбираем товар и сохраняем его имя") good_name = self.get_name(self.get_element_navigate(self.driver, test_data["start_xpath_good"] % number_good)) # Переход на страницу товара service_log.put("Переход на страницу товара") self.check_navigate_in_good_page(self.driver, test_data, number_good) url_good = self.driver.current_url.encode("utf-8") good_id = url_good[url_good.rfind("/") + 1 :] # Жмем кнопку запросить цену по товару - товар в сделке, обновляем страницу service_log.put("Жмем кнопку запросить цену по товару - товар в сделке, обновляем страницу") btn_call_seller = self.get_element_navigate(self.driver, self.click_good.BTN_CALL_SELLER) self.click_button(btn_call_seller) input_msg = self.element_is_present(self.driver, self.input_good.POPUP_INPUT_MSG) input_msg.send_keys(str(time.time())) btn_send = self.get_element_navigate(self.driver, self.click_good.BTN_SEND) self.click_button(btn_send) btn_to_good = self.get_element_navigate(self.driver, self.click_good.BTN_TO_CARD_GOOD) self.click_button(btn_to_good) # Жмем кнопку добавить в избранное service_log.put("Жмем кнопку добавить в избранное") btn_add_to_favorite = self.get_element_navigate(self.driver, self.click_good.ADD_FAVORITE) btn_add_to_favorite.click() # Проверяем, что кнопка изменилась на удалить из избранного остается такой же после обновления страницы service_log.put("Проверяем, что кнопка изменилась на удалить из избранного") self.get_element_navigate(self.driver, self.click_good.DEL_FAVORITE) self.driver.refresh() HelpNavigateCheckMethods.progress(self.driver) self.get_element_navigate(self.driver, self.click_good.DEL_FAVORITE) # Переходим в избранные товары service_log.put("Переходим в избранные товары") self.get_page(self.driver, self.path_favorites.URL_FAVORITES_GOODS) # Проверяем наличие товара в избранном service_log.put("Проверяем наличие товара в избранном") self.get_element_navigate(self.driver, self.click_favorite.GOOD_NAME_BY_ID_AND_TITLE % (good_name, good_id)) # Удаляем из избранного service_log.put("Удаляем из избранного") del_favorite = self.get_element_navigate(self.driver, self.click_favorite.DEL_FAVORITE % (good_name, good_id)) del_favorite.click() time.sleep(sleep) # Проверяем, что нет на странице избранного test_good = dict( xpath=(self.click_favorite.GOOD_NAME_BY_ID_AND_TITLE % (good_id, good_name)), err_msg="Товар остался в списке избранного после удаления", ) self.check_no_such_element(self.driver, test_good) # Переходим на страницу товара и проверяем, что кнопка добавить в избранное service_log.put("Get page: %s" % url_good) do_get_work = time.time() self.driver.get(url_good) work_get_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Onload event time: [%s]" % work_get_time) HelpNavigateCheckMethods.progress(self.driver) work_load_time = HelpNavigateCheckMethods.work_time(do_get_work) service_log.put("Page received: %s" % url_good) service_log.put("Page received time: %s" % work_load_time) self.get_element_navigate(self.driver, self.click_good.ADD_FAVORITE)