示例#1
0
class ServicesAdminPage(GkrPage):

    SERVICES_LIST = AdminServicesTable(u"Список услуг (администрирование)",
                                       By.XPATH, ".//tbody")
    NAME = Input(u"Поле 'Название'", By.XPATH,
                 ".//div[child::input[@id='name']]")
    STATUS = Select(u"Список 'Отображение услуги на терминале'", By.XPATH,
                    ".//select[@id='status']")
    PREFIX = Input(u"Поле 'Префикс'", By.XPATH,
                   ".//div[child::input[@id='servicePrefix']]")
    GROUP = Select(u"Список 'Группа'", By.XPATH, ".//select[@id='groupId']")
    DURATION = Input(u"Поле 'Регламент услуги'", By.XPATH,
                     ".//div[child::input[@id='duration']]")
    ADDITIONAL_DURATION = Input(
        u"Поле 'Доп. время на объект недвижимости'", By.XPATH,
        ".//div[child::input[@id='aditional_duration']]")
    PERCENT_RECORDS = Input(u"Поле 'Максимальный % времени для услуги'",
                            By.XPATH,
                            ".//div[child::input[@id='precentRecords']]")
    PERCENT_RECORDS_ADVANCE = Input(
        u"Поле 'Максимальный % времени для услуги предв.'", By.XPATH,
        ".//div[child::input[@id='precentRecordsAdvance']]")
    CALENDAR = Select(u"Список 'Календарь'", By.XPATH,
                      ".//select[@id='calendar']")
    SCHEDULE = Select(u"Список 'Расписание'", By.XPATH,
                      ".//select[@id='schedule']")

    CLEAN = BaseElement(u"Кнопка 'Очистить форму'", By.XPATH,
                        ".//button[@type='button']")
    SUBMIT = BaseElement(u"Кнопка 'Добавить'", By.XPATH,
                         ".//input[@type='submit']")
示例#2
0
class StandardsAdminPage(GkrPage):
    WAIT_MAX_ADVANCE = Input(
        u"Поле 'Опоздание на регистрацию из предварительной очереди, в минутах'",
        By.XPATH, ".//table[@class='table']/tbody/tr[2]/td")
    FINISH_DATE = Input(
        u"Поле 'Конечная дата предварительной записи, в минутах'", By.XPATH,
        ".//table[@class='table']/tbody/tr[3]/td")
    SUCCESS_MESSAGE = BaseElement(u"Сообщение об успешном сохранении формы",
                                  By.ID, "saved")
    SUBMIT = BaseElement(u"Кнопка 'Сохранить'", By.ID, "saveBut")
示例#3
0
class RecoveryForm(BasePage):
    EMAIL = Input("Поле 'E-mail'", By.XPATH,
                  ".//div[child::*[contains(text(),'E-mail адрес')]]")
    ERROR = BaseElement(
        "Сообщение об ошибке", By.XPATH,
        ".//div[contains(@class,'error') and contains(@style,'visible')]")
    SUBMIT = BaseElement("Кнопка 'Восстановить'", By.XPATH,
                         ".//button[@type='submit']")
    WAIT = BaseElement("Элемент ожидания", By.XPATH,
                       ".//p[@id='restore-password-wait']")
    SUCCESS_TEXT = BaseElement("Успешное подтверждение восстановления",
                               By.XPATH, ".//div[@class='success']")
示例#4
0
class EditNewsPage(GkrPage):

    TITLE = BaseElement("Поле 'Заголовок новости'", By.ID, "title")
    DESC = BaseElement("Поле 'Текст новости'", By.ID, "text")
    PUBLISH_DATE = Input("Поле 'Дата создания'", By.XPATH,
                         ".//*[child::*[contains(text(),'Дата')]]")
    IS_PUBLISHED = Checkbox("Чекбокс 'Опубликовать'", By.XPATH,
                            ".//input[@type='checkbox']")
    SUBMIT = BaseElement("Кнопка 'Создать'", By.XPATH,
                         ".//button[@type='submit']")

    ERROR = BaseElement("Сообщение об ошибке", By.XPATH,
                        ".//span[contains(@style,'ff0000')]")
示例#5
0
class SchedulePage(GkrPage):

    SCHEDULE_LIST = Select("Список расписаний", By.ID, "scheduleList")
    DUPLICATE = BaseElement("Кнопка 'Дублировать план'", By.XPATH,
                            ".//button[text()='Дублировать план']")
    SAVE = BaseElement("Кнопка 'Сохранить план'", By.XPATH,
                       ".//button[text()='Сохранить план']")
    DELETE = BaseElement("Кнопка 'Удалить план'", By.XPATH,
                         ".//button[text()='Удалить план']")
    SETTINGS_TABLE = AdminScheduleTable("Таблица параметров плана'", By.XPATH,
                                        ".//table[@class='table']")
    SUCCESS_MESSAGE = BaseElement("Сообщение об успешном действии", By.ID,
                                  "successlabel")
    ERROR_MESSAGE = BaseElement("Сообщение об ошибке", By.ID, "errorLabel")
示例#6
0
class TCustomersAdminPage(GkrPage):

    TERM_FIELD = Input(u"Поле 'Поиск'", By.XPATH,
                       ".//div[child::input[@name='term']]")
    SEARCH_SUBMIT = BaseElement(u"Кнопка 'Поиск'", By.XPATH,
                                ".//input[@type='submit']")
    TABLE = List(u"Таблица пользователей", By.XPATH, ".//tbody/tr")
示例#7
0
class CustomerEditPage(GkrPage):

    NAME = Input("Поле 'Имя'", By.XPATH, ".//li[child::*[@for='name']]")
    SURNAME = Input("Поле 'Фамилия'", By.XPATH,
                    ".//li[child::*[@for='surname']]")
    PATRONYMIC = Input("Поле 'Отчество'", By.XPATH,
                       ".//li[child::*[@for='patronymic']]")
    BIRTHDAY = Input("Поле 'Дата рождения'", By.XPATH,
                     ".//li[child::*[@for='birthday']]")
    LOGIN = Input("Поле 'Логин'", By.XPATH, ".//li[child::*[@for='login']]")
    PASSWORD = Input("Поле 'Паспорт'", By.XPATH,
                     ".//li[child::*[@for='password']]")
    EMAIL = Input("Поле 'Email'", By.XPATH, ".//li[child::*[@for='email']]")
    MOBILE = Input("Поле 'Мобильный телефон'", By.XPATH,
                   ".//div[child::*[@for='mobilePhone']]")
    HOME_PHONE = Input("Поле 'Дом. телефон'", By.XPATH,
                       ".//div[child::*[@for='homePhone']]")

    PASSPORT_SERIAL = Input("Поле 'Серия паспорта'", By.XPATH,
                            ".//div[child::*[@for='serial']]")
    PASSPORT_NUMBER = Input("Поле 'Номер паспорта'", By.XPATH,
                            ".//div[child::*[@for='no']]")
    ISSUE_DATE = Input("Поле 'Когда выдан'", By.XPATH,
                       ".//div[child::*[@for='whenAt']]")
    ISSUE = Input("Поле 'Кем выдан'", By.XPATH,
                  ".//li[child::*[@for='issue']]")
    INN = Input("Поле 'Инн'", By.XPATH, "")

    SUBMIT = BaseElement(
        "Кнопка 'Подтвердить'", By.XPATH,
        ".//*[contains(text(),'Подтвердить') or contains(text(),'Сохранить')]")
示例#8
0
class LoginForm(BasePage):
    LOGIN = Input("Поле 'Логин'", By.XPATH,
                  ".//div[child::label[contains(text(), 'Введите логин')]]")
    PASSWORD = Input(
        "Поле 'Пароль'", By.XPATH,
        ".//div[child::label[contains(text(), 'Введите пароль')]]")
    PASSWORD_RECOVERY = Link("Ссылка 'Забыли пароль?'", By.XPATH,
                             ".//a[contains(text(),'Забыли пароль')]")
    ERROR = BaseElement(
        "Сообщение об ошибке", By.XPATH,
        ".//div[@class='error' and contains(@style,'visible')]")
    REGISTRATION = BaseElement("Кнопка 'Регистрация'", By.XPATH,
                               ".//*[contains(text(),'Регистрация')]")
    RECOVERY = Link("Ссылка 'Забыли пароль'", By.XPATH,
                    ".//a[contains(@href,'restore')]")
    SUBMIT = BaseElement("Кнопка 'Войти'", By.XPATH,
                         ".//*[contains(text(),'Войти')]")
示例#9
0
class TopMenu(BasePage):
    LOGIN_LINK = BaseElement(u"Ссылка 'Войдите'", By.XPATH,
                             ".//a[contains(@class,'link_sign-in')]")
    REG_LINK = Link(u"Ссылка 'Зарегистрируйтесь'", By.XPATH,
                    ".//a[contains(@class,'link_sign-up')]")
    LOGOUT = Link(u"Ссылка 'Выйти'", By.XPATH,
                  ".//a[contains(@href,'logout')]")
    PROFILE = Link(u"Ссылка на профиль пользователя", By.XPATH,
                   ".//a[contains(@href,'customer')]")
示例#10
0
class ProfilePage(GkrPage):

    SURNAME = Input("Поле 'Фамилия'", By.XPATH,
                    ".//div[child::*[contains(text(),' Фамилия')]]")
    NAME = Input("Поле 'Имя'", By.XPATH,
                 ".//div[child::*[contains(text(),' Имя')]]")
    PATRONYMIC = Input("Поле 'Отчество'", By.XPATH,
                       ".//div[child::*[contains(text(),' Отчество')]]")
    BIRTHDAY = Input("Поле 'Дата рождения'", By.XPATH,
                     ".//div[child::*[contains(text(),'Дата рождения')]]")
    EMAIL = Input("Поле 'Email'", By.XPATH,
                  ".//div[child::*[contains(text(),' E-mail')]]")
    MOBILE = Input("Поле 'Мобильный телефон'", By.XPATH,
                   ".//div[child::*[contains(text(),' Мобильный')]]")
    HOME_PHONE = Input("Поле 'Дом. телефон'", By.XPATH,
                       ".//div[child::*[contains(text(),' Домашний')]]")
    PASSPORT_SERIAL = Input(
        "Поле 'Серия паспорта'", By.XPATH,
        ".//div[child::*[contains(text(),'ерия паспорта')]]")
    PASSPORT_NUMBER = Input(
        "Поле 'Номер паспорта'", By.XPATH,
        ".//div[child::*[contains(text(),'Номер паспорта')]]")
    ISSUE = Input("Поле 'Кем выдан'", By.XPATH,
                  ".//div[child::*[contains(text(),'Кем выдан')]]")
    ISSUE_DATE = Input("Поле 'Когда выдан'", By.XPATH,
                       ".//div[child::*[contains(text(),'Когда выдан')]]")
    INN = Input("Поле 'Инн'", By.XPATH,
                ".//div[child::*[contains(text(),'Инн')]]")

    PASSWORD = Input("Поле 'Пароль'", By.XPATH,
                     ".//div[child::*[contains(text(),' Новый пароль')]]")
    PASSWORD_CONFIRM = Input(
        "Поле 'Повтор пароля'", By.XPATH,
        ".//div[child::*[contains(text(),' Повторите пароль')]]")
    ERROR_MESSAGE = BaseElement("Сообщение об ошибке", By.XPATH,
                                ".//div[@style='color: red']")
    SUCCESS_MESSAGE = BaseElement("Сообщение об успешном измении профиля",
                                  By.XPATH, ".//div[@style='color: green']")
    SUBMIT = BaseElement("Кнопка 'Сохранить изменения'", By.XPATH,
                         ".//button[contains(text(), 'Сохранить изменения')]")
    TICKETS_HISTORY = HistoryServices("Блок 'История услуг'", By.XPATH,
                                      ".//div[@class='history-services']")
示例#11
0
class ImportPage(GkrPage):

    IMPORT_FILE = BaseElement("Поле добавления файла", By.XPATH,
                              ".//input[@type='file']")
    SUBMIT = BaseElement("Кнопка 'Загрузить файл'", By.XPATH,
                         ".//input[@type='submit']")

    # подстраница Предпросмотр перед импортом регистраторов
    ORGANIZATIONS = Select("Список 'Организация'", By.ID, 'selectSome')
    ADD_CHECKBOX = Checkbox("Чекбокс 'Добавить новых регистраторов'", By.ID,
                            'addNew1')
    READY_TABLE = List(
        "Таблица 'Готово к импорту'", By.XPATH,
        ".//div[following-sibling::span[contains(text(),'Готово к импорту')]]//tbody/tr"
    )
    IMPORT_BUTTON = BaseElement("Кнопка 'Импорт'", By.ID, "importButton")

    # подстраница Отчет о импорте
    ADDED = BaseElement("Количество добавленных регистраторов", By.XPATH,
                        u"//div[contains(@class,'type2')]/div[5]/h3")
示例#12
0
class TicketDataDialog(BasePage):

    TICKET_NUMBER = BaseElement("Номер", By.ID, "ticket_id")
    TICKET_TIME = BaseElement("Время", By.ID, "ticket_time")
    TICKET_SERVICE = BaseElement("Услуга", By.ID, "ticket_service")
    TICKET_DEP = BaseElement("Отделение", By.ID, "ticket_department")
    TICKET_CUSTOMER = BaseElement("Посетитель", By.ID, "ticket_customer")
    TICKET_ADDRESS = BaseElement("Недвижимость", By.ID, "ticket_address")
    TICKET_PRINT = BaseElement("Кнопка 'Печать талона'", By.ID, "pdf_ticket")
    GET_TICKET = BaseElement("Кнопка 'Получить талон'", By.ID, "submit")

    @property
    def close(self):
        return self.element.find_element(By.XPATH,
                                         ".//a[contains(@class,'close')]")
示例#13
0
class StatisticPage(GkrPage):

    CREATION_DATE = BaseElement("Кнопка фильтра по дате создания", By.XPATH,
                                ".//input[@value='created']")
    ADVANCE_DATE = BaseElement("Кнопка фильтра по дате посещения'", By.XPATH,
                               ".//input[@value='advance']")
    DATE_FROM = BaseElement("Поле дата с", By.ID, "from")
    DATE_TO = BaseElement("Поле дата по", By.ID, "to")
    DEPARTMENT = Select("Список подразделений", By.NAME, "department")
    DETAIL_DAY = BaseElement("Кнопка фильтра по дате создания", By.XPATH,
                             ".//input[@value='day']")
    DETAIL_HOUR = BaseElement("Кнопка фильтра по дате создания", By.XPATH,
                              ".//input[@value='hour']")
    TABLE = StatisticTable("Таблица статистики", By.XPATH, ".//table")
    SUBMIT = BaseElement("Кнопка 'Ок'", By.XPATH, ".//button[@type='submit']")
示例#14
0
class HistoryPage(GkrPage):

    SEARCH_FIELD = Input("Поле ввода критерия поиска", By.XPATH, ".//div[contains(@class,'header_history')]")
    SEARCH_BUTTON = BaseElement("Кнопка 'Поиск'", By.XPATH, ".//input[@value='Поиск']")
    SEARCH_ROWS = List("Таблица истории результатов ", By.XPATH, "//table[@class='table']/tbody/tr")
示例#15
0
class NewsAdminPage(GkrPage):

    CREATE_NEWS = BaseElement("Кнопка 'Создать новость'", By.XPATH,
                              ".//a[@class='button_type1']")
    NEWS_LIST = AdminNewsTable("Список администрируемых новостей'", By.XPATH,
                               ".//tbody")
示例#16
0
class AddressDialog(BasePage):
    VERIFY = BaseElement("Кнопка 'Проверить'", By.XPATH,
                         ".//button[child::*[text()='Проверить']]")
    MANUAL = BaseElement("Кнопка 'Ввести вручную'", By.XPATH,
                         ".//button[child::*[text()='Ввести вручную']]")
示例#17
0
class QueuePage(GkrPage):
    @property
    def address_dialog(self):
        return AddressDialog(self.config)

    SURNAME = Input("Поле 'Фамилия'", By.XPATH,
                    ".//div[child::*[contains(text(),' Фамилия')]]")
    NAME = Input("Поле 'Имя'", By.XPATH,
                 ".//div[child::*[contains(text(),' Имя')]]")
    PATRONYMIC = Input("Поле 'Отчество'", By.XPATH,
                       ".//div[child::*[contains(text(),' Отчество')]]")
    BIRTHDAY = Input("Поле 'Дата рождения'", By.XPATH,
                     ".//div[child::*[contains(text(),'Дата рождения')]]")
    EMAIL = Input("Поле 'Email'", By.XPATH,
                  ".//div[child::*[contains(text(),' E-mail')]]")
    MOBILE = Input("Поле 'Мобильный телефон'", By.XPATH,
                   ".//div[child::*[contains(text(),' Мобильный')]]")
    HOME_PHONE = Input("Поле 'Дом. телефон'", By.XPATH,
                       ".//div[child::*[contains(text(),' Домашний')]]")
    PASSPORT_SERIAL = Input(
        "Поле 'Серия паспорта'", By.XPATH,
        ".//div[child::*[contains(text(),'ерия паспорта')]]")
    PASSPORT_NUMBER = Input(
        "Поле 'Номер паспорта'", By.XPATH,
        ".//div[child::*[contains(text(),'Номер паспорта')]]")
    ISSUE = Input("Поле 'Кем выдан'", By.XPATH,
                  ".//div[child::*[contains(text(),'Кем выдан')]]")
    ISSUE_DATE = Input("Поле 'Когда выдан'", By.XPATH,
                       ".//div[child::*[contains(text(),'Когда выдан')]]")

    DEPARTMENT_SELECT = Select(u"Список 'Отделение'", By.ID, "department_id")
    DEPARTMENT_TEXT = BaseElement(u"Текст 'Отделение'", By.ID,
                                  "department_name")
    SERVICE = Select(u"Список 'Услуга'", By.ID, "serviceId")
    OBJECT_TYPE = Select(u"Список 'Тип объекта недвижимости'", By.ID,
                         "objectsCount")
    SUGGEST = List(u"Саджест 'Адрес объекта недвижимости'", By.XPATH,
                   "//li[contains(@id,'ui-id')]")
    CITY = Select(u"Список 'Район / Город'", By.ID, "address.region")
    LOCALITY = Input(u"Поле 'Населенный пункт'", By.XPATH,
                     ".//div[./label[contains(text(),'Населенный пункт')]]")
    STREET = Input(u"Поле 'Улица'", By.XPATH,
                   ".//div[./label[contains(text(),'Улица')]]")
    HOUSE = Input(u"Поле 'Дом'", By.XPATH,
                  ".//div[./label[contains(text(),'Дом')]]")
    FLAT = Input(u"Поле 'Квартира'", By.XPATH,
                 ".//div[./label[contains(text(),'Квартира')]]")
    OTHER = Input(
        u"Поле 'Иное'", By.XPATH,
        ".//div[./label[contains(text(),'Адрес с правоустанавливающего')]]")
    CAPTCHA = Input(u"Поле 'Текст с картинки'", By.XPATH,
                    ".//div[./label[contains(text(),'Введите текст')]]")
    STAT_INDICATOR = BaseElement(
        "Уровень занятости отдела", By.XPATH,
        ".//span[@class='statistics-indicator__value']")
    ERROR_TEXT = List("Сообщения с ошибками", By.XPATH,
                      "//div[@class='text_error']")
    QUEUE_FULL_MESSAGE = BaseElement(
        "Сообщения о следующей дате открытия", By.XPATH,
        ".//div[@id='no-time' and not(contains(@style,'display'))]")
    CALENDAR = Calendar("Календарь", By.XPATH,
                        "//div[contains(@class,'datetime')]")
    SUBMIT = BaseElement("Кнопка 'Получить талон'", By.ID, "submit")