コード例 #1
0
ファイル: class_front.py プロジェクト: Maksim1988/test
    def check_incorrect_passwd_or_phone(self, driver):
        """ Проверяем форму при вводе не корректного пароля.
        :param driver: ссылка на драйвер
        """

        self.check_error(driver)
        HelpNavigateCheckMethods.element_is_present(driver, self.set_text_xpath_error(self.TEXT_CHECK_PHONE_OR_PASS))
コード例 #2
0
ファイル: class_search.py プロジェクト: Maksim1988/test
 def good_card_short(driver, good):
     """
     Метод получает объект короткая карточка товара по заданным данным
     :param good: данные товара
     :return:
     """
     main_picture = good["content"][u'pictures'][u'value'][0].encode('utf-8')
     title = good["content"][u'title'][u'value'].encode('utf-8')
     min_stock = good["content"][u'min_stock'][u'value']
     try:
         price = str(good["content"][u'price'][u'value'][u'significand'])
         if 3 < len(price) < 7:
             price = price[:-3] + " " + price[-3:]   # здесь в кавычках неразрывные пробелы
         elif len(price) >= 7:
             price = price[:-6] + " " + price[-6:-3] + " " + price[-3:]
     except Exception:
         price = "---"
     g_card = {
         "card": Navigate.element_is_present(driver, Navigate.click_search.GOOD_CARD_BY_ID % good["ware_id"]),
         "picture": Navigate.element_is_present(driver, Navigate.click_search.GOOD_PICTURE % (good["ware_id"],
                                                                                              main_picture)),
         "title": Navigate.element_is_present(driver, Navigate.click_search.GOOD_TITLE % (good["ware_id"], title)),
         "price": Navigate.element_is_present(driver, Navigate.click_search.GOOD_PRICE % (good["ware_id"], price)),
         "min_stock": Navigate.element_is_present(driver, Navigate.click_search.GOOD_MIN_STOCK % (good["ware_id"],
                                                                                                  min_stock)),
     }
     service_log.put("Короткая карточка товара найдена. Id: %s" % good["ware_id"])
     return g_card
コード例 #3
0
 def is_user_logged(self, driver, user):
     """
     Проверка, что пользователь залогинен. Корректность имени пользователя в хедере
     :param user:
     :return:
     """
     Navigate.element_is_present(driver, Navigate.click_main.MENU_PROFILE_NAME % user['display_name'])
コード例 #4
0
ファイル: class_front.py プロジェクト: Maksim1988/test
    def check_instruction_not_receiver_passwd(self, driver):
        """ Проверка текста со списком инструкций, если пароль не пришел.
        :param driver: ссылка на драйвер
        """

        HelpNavigateCheckMethods.element_is_present(driver, self.CHECK_OBJ_INSTRUCT_NOT_PASSWD % self.CHECK_INSTRUCT_NOT_PASSWD)
        for index in self.LIST_INSTRUCT_NOT_PASSWD:
            HelpNavigateCheckMethods.element_is_present(driver, self.OBJ_NOT_RECEIVER_PASSWD % index)
コード例 #5
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def get_data_restore(driver):
     """ Получить данные страницы восстановления пароля.
     :param driver: ссылка на драйвер
     :return: телефон, пароль, кнопка "Войти"
     """
     phone = HelpNavigateCheckMethods.element_is_present(driver, "//input[@name='phone' and @placeholder='(800) 000-00-00']")
     sent_pass_button = HelpNavigateCheckMethods.element_is_present(driver, "//span[text()='Выслать пароль']")  # кнопка Выслать пароль
     return phone, sent_pass_button
コード例 #6
0
ファイル: class_chat.py プロジェクト: Maksim1988/test
 def check_text_message(self, driver, dialog, message):
     """
     Проверить текстовое сообщение
     :param messages:
     :return:
     """
     service_log.put("Checking Text-message")
     text = message[u'text'][u'text'].encode('utf-8')
     Navigate.element_is_present(driver, Navigate.check_chat.TEXT_MSG % (dialog, text))
コード例 #7
0
ファイル: class_chat.py プロジェクト: Maksim1988/test
 def check_picture_message(self, driver, dialog, message):
     """
     Проверить сообщение-картинка
     :param messages:
     :return:
     """
     service_log.put("Checking Picture-message")
     picture_id = message[u'pictureId'].encode('utf-8')
     Navigate.element_is_present(driver, Navigate.check_chat.MSG_PICTURE % (dialog, picture_id))
コード例 #8
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def check_not_need_phone(self, driver):
     """ Проверка отсутствия окна ошибки "введите телефон".
     :param driver: ссылка на драйвер
     """
     tx = None
     try:
         HelpNavigateCheckMethods.element_is_present(driver, self.set_text_xpath_error(self.TEXT_NEED_PHONE_EMAIL))
     except Exception, tx:
         pass
コード例 #9
0
ファイル: class_search.py プロジェクト: Maksim1988/test
 def none_found(driver, test_string):
     """
     Метод получает форму пользователей и товаров не найдено
     :param driver:
     :param test_string:
     """
     form = {
         'title': Navigate.element_is_present(driver, Navigate.check_search.CATALOG_ALL_EMPTY % test_string),
         'description': Navigate.element_is_present(driver, Navigate.check_search.CATALOG_EMPTY_DESC),
         'btn_catalog': Navigate.element_is_present(driver, Navigate.click_search.BTN_CATALOG)
     }
     return form
コード例 #10
0
ファイル: class_search.py プロジェクト: Maksim1988/test
 def search_form(driver):
     """
     Метод получает объекты формы поиска
     :param driver:
     :return: словарь объектов формы поиска
     """
     search_form = {
         "input": Navigate.element_is_present(driver, Navigate.input_main.SEARCH),
         "btn": Navigate.element_is_present(driver, Navigate.click_main.SEARCH_BTN)
     }
     service_log.put('Получены объекты формы поиска')
     return search_form
コード例 #11
0
ファイル: class_search.py プロジェクト: Maksim1988/test
 def found_only_users(driver, test_string):
     """
     Метод получает форму товаров не найдено но найдены пользователи
     :param driver:
     :param test_string:
     :return:
     """
     form = {
         'title': Navigate.element_is_present(driver, Navigate.check_search.CATALOG_GOOD_EMPTY % test_string),
         'description': Navigate.element_is_present(driver, Navigate.check_search.CATALOG_GOOD_EMPTY_DESC),
         'btn_to_users': Navigate.element_is_present(driver, Navigate.click_search.BTN_TO_USERS % test_string)
     }
     return form
コード例 #12
0
ファイル: class_chat.py プロジェクト: Maksim1988/test
 def check_user_message(self, driver, dialog, message, link_db):
     """
     Проверить сообщение-карточка пользователя
     :param messages:
     :return:
     """
     service_log.put("Checking User-message")
     user_id = str(message[u'userId'])
     user = link_db.accounting.get_user_by_criteria_only("id=%s" % user_id)[0]
     avatar_xpath = Navigate.check_chat.USER_AVATAR % (dialog, user_id, user["avatar_id"])
     service_log.put("Find avatar xpath=%s" % avatar_xpath)
     Navigate.element_is_present(driver, avatar_xpath)
     Navigate.element_is_present(driver, Navigate.check_chat.USER_NAME % (dialog, user_id, user["display_name"]))
コード例 #13
0
ファイル: class_chat.py プロジェクト: Maksim1988/test
 def check_message_info(self, driver, user_id, link_db_user, msg_info, read_time):
     """
     Проверить информацию о сообещнии, пользователя отправителя, время отправки , метку о прочтении если пользователь
     отправил сообщение, если получил сообщение метку не проверять
     :param driver: вебдрайвер
     :param dialog: идентификатор диалога
     :param message: идентификатор сообщения
     :param link_db_user: ссылка на БД пользователей
     :param msg_info: информация об отправителе
     :param read_time: информация о времени прочтения сообщения
     """
     user_sender_id = msg_info[u'participantId']
     user_sender = link_db_user.accounting.get_user_by_criteria_only("id=%s" % user_sender_id)[0]
     if user_sender["avatar_id"] is None:
         user_sender["avatar_id"] = 'no_ava'
     if read_time != 0:
         read_flag = Navigate.check_chat.READ_MSG
     else:
         read_flag = Navigate.check_chat.UNREAD_MSG
     send_time = self.timestamp_to_hm(msg_info[u'sendingTimestamp'])
     Navigate.element_is_present(driver, Navigate.check_chat.SENDER_AVATAR % user_sender["avatar_id"])
     Navigate.element_is_present(driver, Navigate.check_chat.SENDER_NAME % user_sender["display_name"])
     Navigate.element_is_present(driver, Navigate.check_chat.SEND_TIME % send_time)
     if user_id == user_sender_id:
         Navigate.element_is_present(driver, read_flag)
コード例 #14
0
ファイル: class_good_page.py プロジェクト: Maksim1988/test
 def get_form_call_success(driver):
     """
     Get popup after send message to seller as logged user.
     :param driver:
     :return:
     """
     call_success = dict(
         success=Navigate.element_is_present(driver, Navigate.check_good.P_SUCCESS_SENT),
         title=Navigate.element_is_present(driver, Navigate.check_good.P_TITLE_SENT),
         body=Navigate.element_is_present(driver, Navigate.check_good.P_BODY_SENT),
         btn_to_catalog=Navigate.element_is_present(driver, Navigate.click_good.BTN_POPUP_TO_CATALOG),
         btn_close=Navigate.element_is_present(driver, Navigate.click_good.BTN_TO_CARD_GOOD)
     )
     return call_success
コード例 #15
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def get_data_authorization(driver):
     """ Получить данные страницы авторизации.
     :param driver: ссылка на драйвер
     :return: телефон, пароль, кнопка "Войти"
     """
     phone = HelpNavigateCheckMethods.element_is_present(driver, "//input[@name='phoneOrEmail']")
     phone.is_displayed()
     phone.is_enabled()
     password = HelpNavigateCheckMethods.element_is_present(driver, "//input[@name='password']")
     password.is_displayed()
     password.is_enabled()
     submit_button = HelpNavigateCheckMethods.element_is_present(driver, "//button[@type='submit']")  # проверка кнопки Войти
     submit_button.is_displayed()
     submit_button.is_enabled()
     return phone, password, submit_button
コード例 #16
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def check_restore_page(self, driver):
     """ Проверка формы на странице "Забыли пароль".
     :param driver: ссылка на драйвер
     """
     HelpNavigateCheckMethods.element_is_present(driver, self.check_restore.RESTORE_PAGE_FORM_AUTH)
     HelpNavigateCheckMethods.element_is_present(driver, self.check_restore.INPUT_PHONE)
     HelpNavigateCheckMethods.element_is_present(driver, self.check_restore.BTN_RESTORE)
     HelpNavigateCheckMethods.element_is_present(driver, self.check_restore.FORM_PHONE)
コード例 #17
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def get_login(driver):
     """ Ссылка на залогинивание.
     :param driver: драйвер
     """
     p = HelpNavigateCheckMethods.element_is_present(driver, HelpAuthData.MENU_LOGIN)
     service_log.put("Submit button find.")
     return p
コード例 #18
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def go_restore_page(driver, sleep=2):
     """ Переход на страницу "Забыли пароль".
     :param driver: ссылка на драйвер
     """
     restore_button = HelpNavigateCheckMethods.element_is_present(driver, HelpAuthData.check_restore.RESTORE_PAGE)
     restore_button.click()
     time.sleep(sleep)
コード例 #19
0
 def reading_unread_messages_after_reg(driver, new_messages):
     """
     Прочитать(протыкать) все непрочитанные сообщения(диалоги с пользователями)
     :param driver:
     :return:
     """
     dialogs = Navigate.elements_is_present(driver, Navigate.click_chat.ALL_UNREAD_MESSAGES)
     for dialog in dialogs:
         body_msg = Navigate.element_is_present(driver, Navigate.check_chat.LAST_MSG)
         Navigate.element_is_present(driver, Navigate.check_main.COUNT_NEW_MSG % (new_messages-1), wait=20)
         Navigate.element_click(driver, dialog, change_page_url=True)
         body_msg_new = Navigate.get_element_navigate(driver, Navigate.check_chat.LAST_MSG)
         assert body_msg != body_msg_new, "Тело нового диалога не появилось, переход на новый диалог не произошел"
     msg = Navigate.get_element_navigate(driver, Navigate.check_main.ABSTRACT_MSG)
     msg = msg.text.encode('utf-8')
     return msg
コード例 #20
0
ファイル: class_front.py プロジェクト: Maksim1988/test
    def get_pass_input(driver):
        """

        :param driver:
        :return:
        """
        return HelpNavigateCheckMethods.element_is_present(driver, HelpAuthData.FORM_PASS)
コード例 #21
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def check_need_password(self, driver):
     """ Проверка окна ошибки "введите пароль".
     :param driver: ссылка на драйвер
     """
     msg = "Не вывелось сообщение об ошибке 'Вы ввели неверный пароль. Пожалуйста попробуйте еще раз.'"
     self.assertIsNotNone(
         HelpNavigateCheckMethods.element_is_present(driver, self.set_text_xpath_error(self.TEXT_NEED_PASSWORD)), msg)
コード例 #22
0
ファイル: class_search.py プロジェクト: Maksim1988/test
 def left_menu(driver):
     """
     Метод получает объекты меню слева на странице поиска и количество найденных товаров и пользователей
     :param driver:
     :return: словарь объектов формы меню
     """
     active_url = driver.current_url.encode('utf-8')
     type_search = active_url[active_url.rfind('/') + 1:active_url.rfind('?')]
     menu = {
         "title": Navigate.element_is_present(driver, Navigate.check_search.TITLE_SEARCH),
         "goods": Navigate.element_is_present(driver, Navigate.click_search.GOODS_MENU[type_search]),
         "users": Navigate.element_is_present(driver, Navigate.click_search.USERS_MENU[type_search]),
     }
     menu.update({"count_goods": menu["goods"].text.encode('utf-8').strip("Товары ")})
     menu.update({"count_users": menu["users"].text.encode('utf-8').strip("Пользователи ")})
     service_log.put("Получены объекты левого меню на странице поиска")
     return menu
コード例 #23
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 def get_repeat_send_passwd(driver):
     """ Найти кнопку отправить пароль повторно.
     :param driver: ссылка на драйвер
     :return: ссылка на объект
     """
     time.sleep(30)  # стоит задержка в 30 секунд на отсылку паролей
     p = HelpNavigateCheckMethods.element_is_present(driver, HelpAuthData.REPEAT_SEND_PASSWD)
     return p
コード例 #24
0
ファイル: class_good_page.py プロジェクト: Maksim1988/test
 def get_visitor_form_call_success(driver):
     """
     Get popup after send message to seller as visitor.
     :param driver:
     :return:
     """
     call_success = dict(
         success=Navigate.element_is_present(driver, Navigate.check_good.P_SUCCESS_SENT),
         title=Navigate.element_is_present(driver, Navigate.check_good.P_VISITOR_TITLE_SENT),
         body=Navigate.element_is_present(driver, Navigate.check_good.P_VISITOR_BODY_SENT),
         input_password=Navigate.element_is_present(driver, Navigate.input_good.POPUP_INPUT_PASS),
         label_help=Navigate.element_is_present(driver, Navigate.check_good.P_HELP_PASS),
         btn_reg=Navigate.element_is_present(driver, Navigate.click_good.BTN_POPUP_REG),
         btn_reject=Navigate.element_is_present(driver, Navigate.click_good.BTN_POPUP_REJECT),
         label_attention=Navigate.element_is_present(driver, Navigate.check_good.P_ATTENTION),
         link_agreement=Navigate.element_is_present(driver, Navigate.click_good.POPUP_LINK_AGREEMENT),
         btn_close=Navigate.element_is_present(driver, Navigate.click_good.BTN_TO_CARD_GOOD)
     )
     return call_success
コード例 #25
0
ファイル: class_good_page.py プロジェクト: Maksim1988/test
 def get_form_call_seller(driver):
     """
     Get popup 'Call with seller' as logged user.
     :param driver:
     :return:
     """
     call_seller = dict(
         title=Navigate.element_is_present(driver, Navigate.check_good.P_TITLE),
         label_who=Navigate.element_is_present(driver, Navigate.check_good.P_WHO),
         who=Navigate.element_is_present(driver, Navigate.check_good.P_WHO_VALUE),
         label_subject=Navigate.element_is_present(driver, Navigate.check_good.P_SUBJECT),
         good=Navigate.element_is_present(driver, Navigate.click_good.POPUP_CARD_GOOD),
         label_message=Navigate.element_is_present(driver, Navigate.check_good.P_MESSAGE),
         input_message=Navigate.element_is_present(driver, Navigate.input_good.POPUP_INPUT_MSG),
         btn_send=Navigate.element_is_present(driver, Navigate.click_good.BTN_SEND),
         btn_cancel=Navigate.element_is_present(driver, Navigate.click_good.BTN_CANCEL_CALL),
         btn_close=Navigate.element_is_present(driver, Navigate.click_good.BTN_TO_CARD_GOOD),
     )
     return call_seller
コード例 #26
0
 def get_validated_email_success(driver):
     """
     Получить форму успешной активации емайла
     :param driver:
     :return:
     """
     Navigate.element_is_present(driver, Navigate.check_reg.E_TITLE_VALIDATED)
     Navigate.element_is_present(driver, Navigate.check_reg.E_ICON_ACTIVATE_SUCCESS)
     Navigate.element_is_present(driver, Navigate.check_reg.E_TEXT_VALIDATED_SUCCESS)
     return Navigate.element_is_present(driver, Navigate.click_reg.E_BTN_START_WORK_AFTER_SUCCESS)
コード例 #27
0
ファイル: class_chat.py プロジェクト: Maksim1988/test
 def check_ware_message(self, driver, dialog, message, link_db):
     """
     Проверить сообщение-карточка товара
     :param messages:
     :return:
     """
     service_log.put("Checking Ware-message")
     ware_id = message[u'wareId'].encode('utf-8')
     ware = link_db.warehouse.get_wares_by_ware_id(ware_id)[0]
     info = ware[u'content']
     picture = info[u'pictures'][u'value'][0].encode('utf-8')
     title = info[u'title'][u'value'].encode('utf-8')
     p = [str(info[i][u'value'][u'significand']) for i in info if i == u'price']
     p = ''.join(p)
     prc = lambda s: "---" if s == '' else s
     price = prc(p)
     quantity = str(info[u'min_stock'][u'value'])
     Navigate.element_is_present(driver, Navigate.check_chat.WARE_PICTURE % (dialog, ware_id, picture))
     Navigate.element_is_present(driver, Navigate.check_chat.WARE_NAME % (dialog, ware_id, title))
     price_web = Navigate.element_is_present(driver, Navigate.check_chat.WARE_PRICE % (dialog, ware_id)).text
     price_web = price_web.encode('utf-8').replace(' ', '')
     self.assertEqual("Заштуку\n%sруб." % price, price_web, "Цена из БД '%s', цена из web '%s'" % (price, price_web))
     quantity_web = Navigate.element_is_present(driver, Navigate.check_chat.WARE_QUANTITY % (dialog, ware_id)).text
     quantity_web = quantity_web.encode('utf-8').replace(' ', '')
     self.assertEqual("Мин.заказ\n%sшт." % quantity, quantity_web, "Мин. заказ из БД '%s', и из web '%s'" %
                      (quantity, quantity_web))
コード例 #28
0
 def get_reg_email_success(driver, email):
     """
     Получить форму успешной регистрации по емайл
     :param driver:
     :param email:
     :return:
     """
     Navigate.element_is_present(driver, Navigate.check_reg.E_TITLE_REG_SUCCESS)
     Navigate.element_is_present(driver, Navigate.check_reg.E_ICON_REG_SUCCESS)
     Navigate.element_is_present(driver, Navigate.check_reg.E_TEXT_REG_SUCCESS % email)
     return Navigate.element_is_present(driver, Navigate.click_reg.E_BTN_START_WORK)
コード例 #29
0
ファイル: class_front.py プロジェクト: Maksim1988/test
 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)
コード例 #30
0
ファイル: class_search.py プロジェクト: Maksim1988/test
 def search_by_no_user(self, driver, user, count_users, e_msg=''):
     """
     Метод проверяет отсутствие пользователя в результатах поиска с использованием пагинации
     :param driver:
     :param user:
     """
     fail = False
     page = 1
     all_pages = int(math.ceil(int(count_users) / 40.0))
     while all_pages >= 1:
         try:
             Navigate.element_is_present(driver, Navigate.click_search.LINK_SELLER_AVATAR % user["id"], wait=2)
             Navigate.element_is_present(driver, Navigate.click_search.SELLER_NAME_WITH_ID % (user['id'],
                                                                                              user["display_name"])
                                         )
             fail = True
             break
         except Exception:
             all_pages -= 1
             if all_pages >= 1:
                 page += 1
                 Navigate.element_click(driver, Navigate.click_search.PAG_PAGE % page)
     self.assertFalse(fail, e_msg)