class RegisterStudentPage(PageObject):
    checkboxes = MultiPageElement(xpath="//input[@type='checkbox']")
    checked_checkboxes = MultiPageElement(css="input:checked[type='checkbox']")
    submit_button = PageElement(css="input[type='submit']")
    success_message_element = PageElement(css=".info")
    finished_course_message_element = PageElement(css=".finished-course-message")
    not_started_course_message_element = PageElement(css=".not-started-course-message")

    @property
    def not_started_course_message(self):
        return self.not_started_course_message_element.text

    @property
    def finished_course_message(self):
        return self.finished_course_message_element.text

    @property
    def success_message(self):
        return self.success_message_element.text

    @property
    def checked_students(self):
        checked_students = [checked_checkbox.find_element_by_xpath("..").text for checked_checkbox in self.checked_checkboxes]
        return checked_students

    def toggle_check(self, student):
        # this is tied to structure of checkboxes generated by django
        # <label for="id_students_0">
        #   <input id="id_students_0" name="students" value="1" type="checkbox"> john
        # </label>
        student_chekboxes = [checkbox for checkbox in self.checkboxes if checkbox.find_element_by_xpath("..").text == student]
        assert len(student_chekboxes) > 0, "student not found in checkboxes"
        assert len(student_chekboxes) == 1, "many students found in checkboxes"
        student_chekbox = student_chekboxes[0]
        student_chekbox.click()
Beispiel #2
0
class OzonSearchPage(PageObject):

    min_price = PageElement(
        xpath='//input[@data-test-id="range-filter-from-input"]')
    max_price = PageElement(
        xpath='//input[@data-test-id="range-filter-to-input"]')
    apply_filter = PageElement(xpath='//button[contains(text(), "Показать")]')
    products_prices = MultiPageElement(
        xpath='//span[@class="price-number"]/span')
    results_links = MultiPageElement(xpath='//a[@class="text-link name-link"]')
    categories = MultiPageElement(xpath='//a[@class="category-link"]')
    filter_new_products = PageElement(
        xpath='//span[contains(text(), "Новинки")]')
    filter_popular_products = PageElement(
        xpath='//span[contains(text(), "Бестселлеры")]')
    filter_low_price_products = PageElement(
        xpath='//span[contains(text(), "Уцененный товар")]')
    filter_high_rate_products = PageElement(
        xpath='//span[contains(text(), "Высокий рейтинг")]')

    def __init__(self, web_driver, uri=''):
        super().__init__(web_driver, uri)
        web_driver.execute_script(
            'window.scrollTo(0, document.body.scrollHeight);')

    def has_results(self):
        return len(self.results_links) > 0

    def go_back(self):
        self.w.back()
        wait_page_loaded(self.w)

    def wait_page_loaded(self):
        wait_page_loaded(self.w)
Beispiel #3
0
class GamePage(PageObject):
    reload_game = PageElement(id_='reload')
    add_player_link = PageElement(id_='add_player')
    add_company_link = PageElement(id_='add_company')
    display_net_worth_link = PageElement(id_='display-net-worth')
    undo = PageElement(id_='undo')
    redo = PageElement(id_='redo')

    bank_cash = PageElement(css="#bank #cash")
    bank_pool = MultiPageElement(css="#bank .pool")

    pool_shares_pay = PageElement(name='pool-shares-pay')
    ipo_shares_pay = PageElement(name='ipo-shares-pay')
    treasury_shares_pay = PageElement(name='treasury-shares-pay')

    log = MultiPageElement(css="#log div.entry")

    player_name_list = MultiPageElement(css="div.player div.name")
    _player_list = MultiPageElement(class_name="player")
    _company_list = MultiPageElement(class_name="company")

    def get_players(self):
        res = []
        for row in self._player_list:
            res.append(Player(row, self.w))
        return res

    def get_companies(self):
        res = []
        for row in self._company_list:
            res.append(Company(row, self.w))
        return res
Beispiel #4
0
class ShareForm(PageObject):
    shares = PageElement(name='shares')
    company = MultiPageElement(css='label.company-label')
    source = MultiPageElement(css='label.source')
    transfer_button = PageElement(name='transfer-share')
    buy_share = PageElement(id_='action-buy')
    sell_share = PageElement(id_='action-sell')
    action = PageElement(id_='action-text')

    def select_company(self, name):  # pragma: no cover
        for label in self.company:
            if label.get_attribute('for') == 'company-{}'.format(name):
                label.click()
                break
        else:  # pragma: no cover
            raise AssertionError(
                'No company called {} found in share list'.format(name))

    def select_source(self, name):  # pragma: no cover
        for label in self.source:
            if label.get_attribute('for') == 'source-{}'.format(name):
                label.click()
                break
        else:
            raise AssertionError('Could not select {}'.format(name))
Beispiel #5
0
class Homepage(PageObject):
    stylesheets = MultiPageElement(tag_name='link')
    scripts = MultiPageElement(tag_name='script')
    start_button = PageElement(name='new_game')
    bank_cash = PageElement(name='cash')
    app_root = PageElement(tag_name='app-root')
    pool_shares_pay = PageElement(name='pool-shares-pay')
    ipo_shares_pay = PageElement(name='ipo-shares-pay')
    treasury_shares_pay = PageElement(name='treasury-shares-pay')
Beispiel #6
0
class TransferForm(PageObject):
    amount = PageElement(name='amount')
    target = MultiPageElement(name='target')
    labels = MultiPageElement(css='label.transfer')
    transfer_button = PageElement(name='transfer')

    def select_target(self, name):  # pragma: no cover
        for radio in self.target:
            if radio.get_attribute('id') == 'target-{}'.format(name):
                radio.click()
                break
        else:
            self.fail('Could not find {} in the transfer form'.format(name))
Beispiel #7
0
class HomePage(PageObject):

    http_homepage_header_hyperlinks = MultiPageElement(
        xpath="//div[@class='menu-header-menu-container']//li/a")
    subject_link = PageElement(
        xpath=
        "//div[@class='menu-header-menu-container']//li/a[contains(text(),'Subjects')]"
    )
    subject_article_sections = MultiPageElement(
        xpath="//a[@ng-if='data.section.name']")
    subject_article_section_articlelink = MultiPageElement(
        xpath="//a[@ng-if='data.link']")
    load_more = PageElement(xpath="//button[@class='clear centre ng-scope']")
    login_button = PageElement(xpath="//button[@class='button clear login']")
    login_username = PageElement(id_='username')
    login_password = PageElement(id_='password')
    logout_button = PageElement(xpath="//button[contains(text(),'Logout')]")
    subscribe_button = PageElement(xpath="//button[@class='button subscribe']")
    latest_edition = PageElement(
        xpath="//a[contains(text(),'Latest Edition')]")
    subscriber_exclusive = PageElement(
        xpath="//h2[text()='Subscriber Exclusive']")
    arts = PageElement(xpath="//a[text()='Arts']")
    list_of_article_under_section = MultiPageElement(
        xpath="//div[@tls-scroll='scrollState']//div[@class='padded']//a")
    to_read_full_article_text = PageElement(
        xpath=
        "//div[@class='form-subtitle futura' and contains(text(),'To read')]")
    search_button = PageElement(xpath="//input[@type='search']")
    search_result_count = PageElement(
        xpath="//span[@ng-bind='results.count_total']")
    subscriber_login = PageElement(
        xpath="//input[@type='submit' and @value='Login']")
    subscribe_to_times_literary_supplement = PageElement(
        xpath="// h2[text() = 'Subscribe to The Times Literary Supplement']")
    list_of_editor_section = MultiPageElement(
        xpath=
        "//div[@class='editions-bottom fadeIn ng-scope']//h3[@class='futura']")
    go_to_top_button = PageElement(xpath="//a[@id='return-to-top']")

    def return_single_article(self):
        return self.list_of_article_under_section[1]

    def return_single_editor_section(self):
        return self.list_of_editor_section[0]

    def return_single_section(self):
        return self.subject_article_sections[0]

    def return_single_article_under_subjects(self):
        return self.subject_article_section_articlelink[0]
class ProductsListPage(PageObject):

    results = MultiPageElement(
        xpath='//div[@class="n-snippet-cell2__title"]/a')

    def results_count(self):
        return len(self.results)
Beispiel #9
0
class Entity(PageObject):
    _name = PageElement(css=".name", context=True)
    _cash = PageElement(css=".cash", context=True)
    _detail = PageElement(css=".detail", context=True)
    _shares = MultiPageElement(css=".share", context=True)
    _summary = PageElement(css=".row", context=True)

    def __init__(self, root, *args, **kwargs):
        super(Entity, self).__init__(*args, **kwargs)
        self.root = root

    def __getitem__(self, key):
        if key == 'row':
            return self.root
        elif key == 'elem' or key == 'summary':
            return self._summary(self.root)
        elif key == 'name':
            return self._name(self.root)
        elif key == 'cash':
            return self._cash(self.root)
        elif key == 'shares':
            return self._shares(self.root)
        elif key == 'detail':
            return self._detail(self.root)
        else:  # pragma: no cover
            raise KeyError
class HomePage(StorePage):
    products = MultiPageElement(class_name="product-container")
    btn_sign_in = PageElement(css="a.login")
    url = "http://automationpractice.com/index.php"

    def goToLogin(self):
        self.btn_sign_in.click()
Beispiel #11
0
class ListLinkDatePage(PageObject):
    li_dates = MultiPageElement(css=".date--item a")

    @property
    def dates(self):
        dates = map(lambda li_date: li_date.text, self.li_dates)
        return dates
class CourseListPage(PageObject):
    links_courses = MultiPageElement(css=".courses a")

    @property
    def course_list(self):
        course_list = map(lambda link_course: link_course.text,
                          self.links_courses)
        return course_list
class ListStudentPage(PageObject):
    # ul > li
    li_students = MultiPageElement(class_name="registered--item")

    @property
    def students_registered(self):
        students_registered = map(lambda li_student: li_student.text,
                                  self.li_students)
        return students_registered
Beispiel #14
0
class TaskColumn(PageObject):
    def __init__(self, driver):
        self.tasks = MultiPageElement(css=self.selector)
        PageObject.__init__(self, driver)

    def get_tasks(self, wait=False):
        if not wait:
            wait_task(self.w, self.selector)
        return [Task(element) for element in self.tasks.find(self.w)]
Beispiel #15
0
class EditCompanyPage(PageObject):
    header = PageElement(id_='title')
    name = PageElement(name='name')
    shares = PageElement(name='share_count')
    text_color = MultiPageElement(name='text-color-select')
    background_color = MultiPageElement(name='background-color-select')
    edit_button = PageElement(tag_name='button')
    preview = PageElement(id_='preview')
    error_list = PageElement(css='.errorlist')
    back = PageElement(id_='back')

    def select_text_color(self, color):
        for radio in self.text_color:
            if radio.get_attribute('value') == color:
                radio.click()
                break

    def select_background_color(self, color):
        for radio in self.background_color:
            if radio.get_attribute('value') == color:
                radio.click()
                break
Beispiel #16
0
class LoginPage(PageObject):
    select_language = PageElement(css='div.lang_selected')

    languages = MultiPageElement(css='#lang_menu_dropdown td.lang_name')

    main_logo = PageElement(css='div.main_logo')

    input_username = PageElement(id_='username')
    input_password = PageElement(id_='password')
    btn_forgot_password = PageElement(css='#login_form a')

    warning_message = PageElement(css='#login_form div div div span')

    btn_sign_in = PageElement(css='#login_form button')
    btn_create_account = PageElement(css='#login_form > span')

    btn_reseller_portal = PageElement(css='div > a')
class GearbestSearchPage(PageObject):

    results = MultiPageElement(class_name='gbGoodsItem_outBox')
Beispiel #18
0
class Todo(PageObject):
    tasks = MultiPageElement(css='.terminal-timeline.todo .terminal-card')

    def get_tasks(self):
        return [task(element) for element in self.tasks]
Beispiel #19
0
class ErrorPage(PageObject):
    errors = MultiPageElement(css=".error")
    close = PageElement(css='.close')
Beispiel #20
0
 class BaiduResultPage(PageObject):
     keywords = PageElement(id_='kw')
     search = PageElement(id_='su')
     records = MultiPageElement(tag_name='h3')
 def test_multi_page_element(self):
     elem = MultiPageElement(id_='bar')
     assert elem.locator == (By.ID, 'bar')
Beispiel #22
0
class YandexSearchResultsPage(YandexMainPage):

    results = MultiPageElement(xpath='//a[contains(@class, "organic__url")]')

    def results_count(self):
        return len(self.results)
Beispiel #23
0
class AliExpressSearchPage(PageObject):

    search_field = PageElement(id_='search-key')
    search_btn = PageElement(class_name='search-button')
    results = MultiPageElement(xpath='//*[contains(@class, "history-item product")]')
 class TestPage(PageObject):
     test_elems = MultiPageElement(css='foo')
Beispiel #25
0
class SearchResultsPage(PageObject):

    search_results = MultiPageElement(xpath='//div[@class="photo"]')
    popup_close = PageElement(
        xpath='//div[@class="header_div"]//a[@class="btn-close1"]')
    #popup_close = PageElement(xpath='(//a[@class="btn-close1"])[9]')
    displayed_results_number = PageElement(
        xpath='//*[@class="listing-progress-text__viewed-count"]')
    all_results_number = PageElement(
        xpath='//*[@class="listing-progress-text__all-count"]')
    no_results_found = PageElement(xpath='(//div[@class="no-products"])[2]')
    first_result = PageElement(xpath='(//div[@class="photo"])[1]')
    add_to_cart_button = PageElement(xpath='(//div[@class="add-cart"])[1]'
                                     )  # first result "Add to cart" button
    first_available_size = PageElement(
        xpath=
        '((//div[@class="photo"])[1]//li[@class="size-type-cm active"]//ul[@class="size-list"]//li/label[not(contains(@class,"disabled"))])[1]'
    )
    cart_counter = PageElement(xpath='//span[@class="count-contents"]')
    open_cart_button = PageElement(xpath='(//span[@class="bg"])[1]')
    all_sums = MultiPageElement(xpath='//div[@class="sum"]')
    sorting_dropdown = PageElement(
        xpath='//div[@class="sort-box"]//span[text()="Популярное"]')
    sort_by_price_asc_b = PageElement(
        xpath='//span[text()="По возрастанию цены"]')

    def close_popup(self):
        if self.popup_close:
            self.popup_close.click()
        else:
            pass

    def __init__(self, web_driver, uri=''):
        super().__init__(web_driver, uri)
        self.close_popup()
        sleep(2)

    def add_to_cart(self):
        action = ActionChains(self.w)
        action.move_to_element(self.first_result).click(
            self.add_to_cart_button).perform()
        sleep(1)
        self.first_available_size.click()
        sleep(1)

    def open_cart(self):
        self.open_cart_button.click()
        return ChartPage(self.w)

    def find_all_prices(self):
        prices = self.w.find_elements_by_xpath('//div[@class="sum"]')
        price_list = []
        for i in range(len(prices)):
            price_list.append(prices[i].text)
        return price_list

    def sort_by_price_asc(self):
        action = ActionChains(self.w)
        action.move_to_element(self.sorting_dropdown).click(
            self.sort_by_price_asc_b).perform()
        sleep(2)
class PageElements(PageObject):
    bmw_filter = PageElement(xpath="//form[contains(@class, 'form')]/div/ul/li[6]")
    cars = MultiPageElement(class_name='car-name-top')
Beispiel #27
0
class Locator(PageObject, KSEDLocators):

    # Форма авторизации
    username_text = PageElement(name=KSEDLocators.username_text)  # Логин
    password_text = PageElement(name=KSEDLocators.password_text)  # Пароль
    LogIn_button = PageElement(
        xpath=KSEDLocators.LogIn_button)  # Кнопка "Войти"

    # *******СТРОКА МЕНЮ*******
    ksed = PageElement(xpath=KSEDLocators.ksed)  #xpath  # КСЭД

    barcode_search = PageElement(
        id_=KSEDLocators.barcode_search)  #id  # Поиск по ШК
    search_bc = PageElement(
        xpath=KSEDLocators.search_bc)  # Строка поиска по ШК

    more_menu = PageElement(id_=KSEDLocators.more_menu)  # Меню "Ещё"
    ksed_in_more_m = PageElement(
        id_=KSEDLocators.ksed_in_more_m)  # КСЭД в меню "Ещё"
    Company_dir = PageElement(
        xpath=KSEDLocators.Company_dir)  # Справочник организации
    admin = PageElement(xpath=KSEDLocators.admin)  # Администрирование
    transfer = PageElement(xpath=KSEDLocators.transfer)  # Передача дел
    arm_arh = PageElement(xpath=KSEDLocators.arm_arh)  # АРМ Архивное дело
    verify = PageElement(xpath=KSEDLocators.verify)  # Верификация
    scanner = PageElement(xpath=KSEDLocators.scanner)  # Работа со сканером ШК

    notification = PageElement(id_=KSEDLocators.notification)  # Уведомления
    notificationProtokol = PageElement(
        xpath=KSEDLocators.notificationProtokol
    )  # Первое в списке уведомление о протоколе
    notificationFirst = PageElement(xpath=KSEDLocators.notificationFirst
                                    )  # id  # Уведомление первое в списке
    # *******МЕНЮ ПОЛЬЗОВАТЕЛЯ*******
    user_menu = PageElement(id_=KSEDLocators.user_menu)  # Меню пользователя
    USER_LOGOUT = PageElement(id_=KSEDLocators.USER_LOGOUT)  # Выход из системы

    my_profile = PageElement(
        xpath=KSEDLocators.my_profile)  # Пункт меню "Мой профиль"
    fieldlabel = PageElement(xpath=KSEDLocators.fieldlabel
                             )  # Должность в области краткой информации
    btnEdit_profile = PageElement(
        xpath=KSEDLocators.btnEdit_profile)  # Кнопка "Изменить профиль"
    inputPosition = PageElement(
        xpath=KSEDLocators.inputPosition)  # Поле ввода должности

    logic_ESM = PageElement(
        xpath=KSEDLocators.logic_ESM)  # Пункт меню "Логика ECM. Мой профиль"
    autoAnswerText = PageElement(name=KSEDLocators.autoAnswerText
                                 )  # Текст автоответа (Меня нет в офисе)
    btnCancelAbsence = PageElement(
        xpath=KSEDLocators.btnCancelAbsence)  # Кнопка "Отменить отсутствие"
    btnYes = PageElement(
        xpath=KSEDLocators.btnYes)  # Кнопка "Да" (отменить отсутствие)

    edit_password = PageElement(
        xpath=KSEDLocators.edit_password)  # Пункт меню "Изменить пароль"
    inputOldPassword = PageElement(
        xpath=KSEDLocators.inputOldPassword)  # Введите старый пароль
    inputNewPassword1 = PageElement(
        xpath=KSEDLocators.inputNewPassword1)  # Введите старый пароль
    inputNewPassword2 = PageElement(
        xpath=KSEDLocators.inputNewPassword2)  # Введите старый пароль
    btnOKchange = PageElement(
        xpath=KSEDLocators.btnOKchange)  # Кнопка "Изменить пароль"

    # *******ЛЕВАЯ ЧАСТЬ СТРАНИЦЫ (Кнопка "Создать" и разделы)*******
    newDoc_button = PageElement(xpath=KSEDLocators.newDoc_button)  # "Создать"

    protocol = PageElement(xpath=KSEDLocators.protocol)  # Протокол
    rd = PageElement(xpath=KSEDLocators.rd)  # РД
    reestr = PageElement(xpath=KSEDLocators.reestr)  # Реестр
    poruchenie = PageElement(xpath=KSEDLocators.poruchenie)  # Поручение
    resolution = PageElement(xpath=KSEDLocators.resolution)  # Резолюция
    SZ = PageElement(xpath=KSEDLocators.SZ)  # Служебная записка
    proizvDoc = PageElement(
        xpath=KSEDLocators.proizvDoc)  # Произвольный документ
    paket_vh = PageElement(xpath=KSEDLocators.paket_vh)  #Пакет Вх. кор.
    vhDoc = PageElement(xpath=KSEDLocators.vhDoc)  # Входящий документ
    ishDoc = PageElement(xpath=KSEDLocators.ishDoc)  # Исходящий документ

    # РАЗДЕЛЫ
    myWork = PageElement(xpath=KSEDLocators.myWork)  # Моя работа

    expedition = PageElement(xpath=KSEDLocators.expedition)  # Экспедиция

    navigation = PageElement(xpath=KSEDLocators.navigation)  # Навигатор

    allur = PageElement(xpath=KSEDLocators.allur)  # Отчеты

    workReg = PageElement(xpath=KSEDLocators.workReg)  # Работа регистратора

    medo = PageElement(xpath=KSEDLocators.medo)  # МЭДО

    mySearch = PageElement(
        xpath=KSEDLocators.mySearch)  # Мои поисковые запросы
    poiskzapr = PageElement(xpath=KSEDLocators.poiskzapr)  # Поисковые запросы
    myPoiskZapr = PageElement(
        xpath=KSEDLocators.myPoiskZapr)  # Поисковые запросы
    ControlZapr = PageElement(
        xpath=KSEDLocators.ControlZapr)  # Упарвление поисковыми запросами
    # ОБЛАСТЬ ПРОСМОТРА (КСЭД)
    oblProsm = PageElement(xpath=KSEDLocators.oblProsm)  # Область просмотра
    oneDocInList = PageElement(
        xpath=KSEDLocators.oneDocInList)  # Первый документ в списке
    nineDocInList = PageElement(
        xpath=KSEDLocators.nineDocInList)  # Девятый документ в списке
    subordinate = MultiPageElement(
        xpath=KSEDLocators.subordinate)  # "+" раскрытие подчиненные документы
    oneSubordInList = PageElement(xpath=KSEDLocators.oneSubordInList
                                  )  # Первая ссылка на подчиненный документ
    ActionTab = PageElement(
        xpath=KSEDLocators.ActionTab)  # Кнопка "Действия с выбранными"
    chBinOnl = PageElement(xpath=KSEDLocators.chBinOnl)

    # Моя работа
    WorkImmid = PageElement(
        xpath=KSEDLocators.WorkImmid)  # xpath  # Моя работа - срочные
    connectedDoc = PageElement(
        xpath=KSEDLocators.connectedDoc)  # xpath #  связанные документы

    # ОТЧЕТЫ
    section_allur = PageElement(
        xpath=KSEDLocators.section_allur)  # Раздел "Отчеты"
    node_Logs = PageElement(xpath=KSEDLocators.node_Logs)  # "Журналы"

    node_Statis = PageElement(
        xpath=KSEDLocators.node_Statis)  # "Статистические отчеты"
    edsBykindStat = PageElement(
        xpath=KSEDLocators.edsBykindStat)  # Отчет "Сводка по видам документов"

    node_ispDisp = PageElement(xpath=KSEDLocators.node_ispDisp)  #

    logs_incDoc = PageElement(xpath=KSEDLocators.logs_incDoc)
    incomingRegJournal = PageElement(
        xpath=KSEDLocators.incomingRegJournal
    )  # Отчет "Журнал регистрации входящих документов"
    logs_outDoc = PageElement(xpath=KSEDLocators.logs_outDoc)
    outgoingRegistration = PageElement(
        xpath=KSEDLocators.outgoingRegistration
    )  # Отчет "Журнал регистрации исходящих документов"
    logs_raspDoc = PageElement(xpath=KSEDLocators.logs_raspDoc)
    ordRegJournal = PageElement(
        xpath=KSEDLocators.ordRegJournal
    )  # Отчет "Журнал регистрации Распорядительных документов"
    logs_sluDoc = PageElement(xpath=KSEDLocators.logs_sluDoc)
    internalRegJournal = PageElement(
        xpath=KSEDLocators.internalRegJournal
    )  # Отчет "Журнал регистрации служебных записок"

    stat_specDoc = PageElement(xpath=KSEDLocators.stat_specDoc)
    stat_temDoc = PageElement(xpath=KSEDLocators.stat_temDoc)
    edsBySubjectStat = PageElement(xpath=KSEDLocators.edsBySubjectStat
                                   )  # Отчет "Сводка по тематикам документов"
    stat_temDocO = PageElement(xpath=KSEDLocators.stat_temDocO)
    edsBySubjectStatO = PageElement(
        xpath=KSEDLocators.edsBySubjectStatO
    )  # Отчет "Сводка по тематикам документов(объед)"
    stat_tipDoc = PageElement(xpath=KSEDLocators.stat_tipDoc)
    edByTypeStat = PageElement(
        xpath=KSEDLocators.edByTypeStat)  # Отчет "Сводка по типам документов"

    allu_ispIncDoc = PageElement(xpath=KSEDLocators.allu_ispIncDoc)
    allu_raspDoc = PageElement(xpath=KSEDLocators.allu_raspDoc)
    allu_sluDoc = PageElement(xpath=KSEDLocators.allu_sluDoc)
    allu_ispDis = PageElement(xpath=KSEDLocators.allu_ispDis)
    allu_ispDispA = PageElement(xpath=KSEDLocators.allu_ispDispA)
    allu_NispDI = PageElement(xpath=KSEDLocators.allu_NispDI)
    allu_NispDIrg = PageElement(xpath=KSEDLocators.allu_NispDIrg)
    allu_istS = PageElement(xpath=KSEDLocators.allu_istS)
    allu_narS = PageElement(xpath=KSEDLocators.allu_narS)
    allu_prodIsp = PageElement(xpath=KSEDLocators.allu_prodIsp)
    allu_prodPodr = PageElement(xpath=KSEDLocators.allu_prodPodr)
    allu_ReesContr = PageElement(xpath=KSEDLocators.allu_ReesContr)
    allu_ReesContrN = PageElement(xpath=KSEDLocators.allu_ReesContrN)
    allu_ReesContrF = PageElement(xpath=KSEDLocators.allu_ReesContrF)
    allu_SostIspR = PageElement(xpath=KSEDLocators.allu_SostIspR)

    # *******РАБОТА С ДОКУМЕНТАМИ*******

    # ОБЩИЕ АТРИБУТЫ
    #(форма создания документа)
    title = PageElement(name=KSEDLocators.title)  # Заголовок

    category_doc = PageElement(
        xpath=KSEDLocators.category_doc)  # Категория документа

    doc_type = PageElement(
        xpath=KSEDLocators.doc_type)  # Вид документа(кнопка выбора)
    doc_typeInp = PageElement(
        xpath=KSEDLocators.doc_typeInp)  # Вид документа(поле ввода)
    btnOKDT = PageElement(
        xpath=KSEDLocators.btnOKDT)  # Вид документа (кнопка "ОК")

    podpisant = PageElement(xpath=KSEDLocators.podpisant)  # Подписант(ы)

    sposob_dost = PageElement(
        xpath=KSEDLocators.sposob_dost)  # Способ доставки

    btnCreateDoc = PageElement(
        xpath=KSEDLocators.btnCreateDoc)  # Кнопка "Создать"

    adresat = PageElement(xpath=KSEDLocators.adresat)  # Адресат

    korrespondent = PageElement(
        xpath=KSEDLocators.korrespondent)  # Корреспондент

    # (карточка документа)
    attachments = PageElement(
        xpath=KSEDLocators.attachments)  # # Переход во вкладку "Вложения"
    vlozheniya = PageElement(
        xpath=KSEDLocators.vlozheniya)  # Вложения (раскрытие раздела)
    osnSvedeniya = PageElement(xpath=KSEDLocators.osnSvedeniya
                               )  # Основные сведения (раскрытие раздела)
    printForm = PageElement(
        xpath=KSEDLocators.printForm)  # Печатные формы (раскрытие раздела)
    printBarCode = PageElement(
        xpath=KSEDLocators.printBarCode)  #Печатная форма штрих кода документа
    btnPrintInPrintForm = PageElement(id_=KSEDLocators.btnPrintInPrintForm
                                      )  # Кнопка печати в окне печатной формы
    btnOKpodpis = PageElement(
        xpath=KSEDLocators.btnOKpodpis)  # Кнопка ОК подтверждение подписания

    mode = PageElement(
        xpath=KSEDLocators.mode)  # Переключение в двупанельный вид
    fileUpload = PageElement(xpath=KSEDLocators.fileUpload)  # Загрузить файл
    fileUpload2 = PageElement(
        xpath=KSEDLocators.fileUpload2)  # Загрузить файл в поручении
    fileUpload3 = PageElement(
        xpath=KSEDLocators.fileUpload3)  # Загрузить файл в поручении
    files = PageElement(xpath=KSEDLocators.files)  # Выберите файлы
    show = PageElement(xpath=KSEDLocators.show)  # Показать общую карточка
    show_list = PageElement(
        xpath=KSEDLocators.show_list)  # Показать ввиде списка
    dropBtn = PageElement(
        xpath=KSEDLocators.dropBtn)  # Кнопка выпадающего списка
    resultSogl = PageElement(
        xpath=KSEDLocators.resultSogl)  # результат согласования
    btnPrint = PageElement(
        xpath=KSEDLocators.btnPrint
    )  # Кнопка печати в форме предварительного просмотра вложения

    soglasovanieWkladka = PageElement(
        xpath=KSEDLocators.soglasovanieWkladka)  # Вкладка "Согласование"
    soglasovanieWkladka2 = PageElement(
        xpath=KSEDLocators.soglasovanieWkladka2)  # Вкладка "Согласование"
    createRuleBtn = PageElement(
        xpath=KSEDLocators.createRuleBtn)  # Кнопка "Создать маршрут"
    createRuleIndivid = PageElement(
        xpath=KSEDLocators.createRuleIndivid)  # "Индивидуальный маршрут"
    addEtap = PageElement(xpath=KSEDLocators.addEtap)  # Кнопка "Добавить этап"
    tipeEtap = PageElement(xpath=KSEDLocators.tipeEtap)  # "Вид этапа"
    soglasuychie = PageElement(
        xpath=KSEDLocators.soglasuychie)  # "Согласующие"
    btnOKformSogl = PageElement(
        xpath=KSEDLocators.btnOKformSogl
    )  # Кнопка "ОК" на форме добавления этапа согласования
    btnTree = PageElement(xpath=KSEDLocators.btnTree)  # Кнопка ...
    btnSelection3 = PageElement(xpath=KSEDLocators.btnSelection3)  # 3 выбор
    punkti = PageElement(xpath=KSEDLocators.punkti)  # Вкладка "Пункты"
    punktiBtn = PageElement(xpath=KSEDLocators.punktiBtn)  # Кнопка "Пункты"
    punktPoruch = PageElement(
        xpath=KSEDLocators.punktPoruch)  # Пункт/Поручение
    textPoruch = PageElement(xpath=KSEDLocators.textPoruch)  # Текст поручения
    tipPoruch = PageElement(xpath=KSEDLocators.tipPoruch)  # Тип поручения
    otvetstv_ispolnVpunktah = PageElement(
        xpath=KSEDLocators.otvetstv_ispolnVpunktah
    )  # Ответственный исполнитель в пунктах карточки документа
    srokIspoln = PageElement(
        xpath=KSEDLocators.srokIspoln)  # Срок исполнения (среднее знач)

    btnOKform = PageElement(xpath=KSEDLocators.btnOKform)  # Кнопка ОК на форме

    sendFor_approval = PageElement(xpath=KSEDLocators.sendFor_approval
                                   )  # Действие "Направить на согласование"
    sendFor_podpis = PageElement(xpath=KSEDLocators.sendFor_podpis
                                 )  # Действие "Направить на подписание"
    sendFor_execution = PageElement(xpath=KSEDLocators.sendFor_execution
                                    )  # Действие "Направить на исполнение"
    btnOKnaprNaIspoln = PageElement(
        xpath=KSEDLocators.btnOKnaprNaIspoln
    )  # Кнопка "ОК" на форме подтверждения действия "Направить на исполнение"
    confirm = PageElement(
        xpath=KSEDLocators.confirm)  # Подтверждение согласования
    confirm2 = PageElement(
        xpath=KSEDLocators.confirm2)  # Подтверждение согласования
    confirm_3 = PageElement(
        xpath=KSEDLocators.confirm_3)  # Подтверждение согласования
    confirm_4 = PageElement(
        xpath=KSEDLocators.confirm_4)  # Подтверждение согласования
    confirm_5 = PageElement(
        xpath=KSEDLocators.confirm_5)  # Подтверждения выбора

    status_Doc = PageElement(
        xpath=KSEDLocators.status_Doc
    )  # Статус документа во вкладке (Основные сведения)

    #"Отправить отчет"
    actionSendAllere = PageElement(
        xpath=KSEDLocators.actionSendAllere)  # "Отправить отчет" действие
    btnSend = PageElement(xpath=KSEDLocators.btnSend)  # Кнопка "Отправить"
    textAllur = PageElement(
        xpath=KSEDLocators.textAllur)  # Текстовое поле "Текст отчета"
    btnAddSvyz = PageElement(
        xpath=KSEDLocators.btnAddSvyz)  # Кнопка добавления связи "..."
    searchDoc = PageElement(
        xpath=KSEDLocators.searchDoc)  # Строка поиска в форме подбора
    oneListEl = PageElement(
        xpath=KSEDLocators.oneListEl)  # Первый элемент в списке справочника
    btnOK = PageElement(
        xpath=KSEDLocators.btnOK)  # Кнопка "ОК" в форме подбора

    # (панель согласования)
    APPROVED_button = PageElement(
        xpath=KSEDLocators.APPROVED_button)  # Кнопка "Согласовать"
    APPROVED_WITH_REMARK_button = PageElement(
        xpath=KSEDLocators.APPROVED_WITH_REMARK_button
    )  # Кнопка "Согласовать с комментариями"
    REJECTED_button = PageElement(
        xpath=KSEDLocators.REJECTED_button)  # Кнопка "Отклонить"
    internal_approval = PageElement(xpath=KSEDLocators.internal_approval
                                    )  # Кнопка "Внутреннее согласование"
    prop_bpm_comment = PageElement(
        name=KSEDLocators.prop_bpm_comment)  # Поле комментария
    apply_button_button = PageElement(
        xpath=KSEDLocators.apply_button_button
    )  # Кнопка "ОК" при вынесении решения согласования
    apply_button_button2 = PageElement(
        xpath=KSEDLocators.apply_button_button2
    )  # Кнопка "ОК" при вынесении решения согласования
    SIGNED_button = PageElement(
        xpath=KSEDLocators.SIGNED_button)  # Кнопка "Подписать"

    # # ПРОТОКОЛ
    # #(форма создания документа)
    # addEl = PageElement(xpath=KSEDLocators.addEl) # Вид документа(Протокол совещания рабочей группы)
    # addEl2 = PageElement(xpath=KSEDLocators.addEl2) #Вид документа "Служебная записка"

    # РАСПОРЯДИТЕЛЬНЫЙ ДОКУМЕНТ
    #(форма создания документа)
    addEl = PageElement(xpath=KSEDLocators.addEl
                        )  # Вид документа(Протокол совещания рабочей группы)
    addEl2 = PageElement(
        xpath=KSEDLocators.addEl2)  #Вид документа "Служебная записка"
    preambula = PageElement(xpath=KSEDLocators.preambula)  # Преамбула
    obcontrol = PageElement(xpath=KSEDLocators.obcontrol)  # Общий контроль
    wid_doc = PageElement(xpath=KSEDLocators.wid_doc)  # Вид документа (в РД)
    wid_doc_rasp = PageElement(
        xpath=KSEDLocators.wid_doc_rasp)  # Вид документа РД (Распоряжение)

    addPunkt = PageElement(
        xpath=KSEDLocators.addPunkt)  # Кнопка "Добавить пункт"
    textPunktaRD = PageElement(
        name=KSEDLocators.textPunktaRD)  # Текст пункта РД
    otvetstv_ispolnVpunktahRD = PageElement(
        xpath=KSEDLocators.otvetstv_ispolnVpunktahRD
    )  # Ответственный исполнитель в пункте РД
    rassilka = PageElement(xpath=KSEDLocators.rassilka)  # Вкладка "Рассылка"
    btnVipolnit = PageElement(
        xpath=KSEDLocators.btnVipolnit)  # Кнопка "Выполнить..."
    punktBtnVipolnit = PageElement(
        xpath=KSEDLocators.punktBtnVipolnit)  # Создать и заполнить

    # ПРОТОКОЛ
    #(форма создания документа)
    date = PageElement(xpath=KSEDLocators.date)  # Дата совещания
    category = PageElement(xpath=KSEDLocators.category)  # Категория
    Chairman = PageElement(xpath=KSEDLocators.Chairman)  # Председатель
    Secretary = PageElement(xpath=KSEDLocators.Secretary)  # Секретарь
    person_present = PageElement(
        xpath=KSEDLocators.person_present)  # Присутствовали

    #РЕЕСТР
    #(форма создания документа)
    vid_reestra = PageElement(xpath=KSEDLocators.vid_reestra)  # Вид реестра
    vid_reestraPR = PageElement(
        xpath=KSEDLocators.vid_reestraPR)  # Вид реестра (Передачи на рег..)
    vid_reestraPP = PageElement(
        xpath=KSEDLocators.vid_reestraPP)  # Вид реестра (Приема/передачи)
    btnCreateChern = PageElement(
        xpath=KSEDLocators.btnCreateChern)  # Кнопка "Создать черновик"
    btnCreateSend = PageElement(
        xpath=KSEDLocators.btnCreateSend)  # Кнопка "Создать и отправить"
    inpDoc = PageElement(xpath=KSEDLocators.inpDoc)  # Поле "Документы"
    poluchatel = PageElement(
        xpath=KSEDLocators.poluchatel)  # Поле "Получатель"

    # СЛУЖЕБНАЯ ЗАПИСКА
    #(форма создания документа)
    adresati = PageElement(xpath=KSEDLocators.adresati)  # Адресаты
    podpisanti = PageElement(xpath=KSEDLocators.podpisanti)  # Подписанты

    # ПРОИЗВОЛЬНЫЙ ДОКУМЕНТ
    #(форма создания документа)
    prorabotka = PageElement(xpath=KSEDLocators.prorabotka)  # Проработка
    chBprorab = PageElement(xpath=KSEDLocators.chBprorab)  # чекбокс проработка
    normokontrol = PageElement(
        xpath=KSEDLocators.normokontrol)  # Нормоконтроль
    chBnorm = PageElement(xpath=KSEDLocators.chBnorm)  # чекбокс Проработка
    soglasovanie = PageElement(xpath=KSEDLocators.soglasovanie)  # Согласование
    podpisanie = PageElement(xpath=KSEDLocators.podpisanie)  # Подписание
    utverzhdenie = PageElement(xpath=KSEDLocators.utverzhdenie)  # Утверждение
    oznakomlenie = PageElement(xpath=KSEDLocators.oznakomlenie)  # Ознакомление

    # ПОРУЧЕНИЕ
    # (форма создания документа)
    tipPoruch = PageElement(xpath=KSEDLocators.tipPoruch)  # Тип поручения
    text_poruch = PageElement(name=KSEDLocators.text_poruch)  #Текст поручения
    otvetstv_ispoln = PageElement(
        xpath=KSEDLocators.otvetstv_ispoln)  # Ответственный исполнитель

    # ПАКЕТ ВХОДЯЩЕЙ КОРРЕСПОНДЕНЦИИ

    # ВХОДЯЩИЙ ДОКУМЕНТ
    #(форма создания документа)
    ishNumber = PageElement(name=KSEDLocators.ishNumber)  # Исходящий номер
    dateIS = PageElement(xpath=KSEDLocators.dateIS)  # Дата исходящего

    # ИСХОДЯЩИЙ ДОКУМЕНТ
    # (форма создания документа)
    osnovPodpis = PageElement(
        name=KSEDLocators.osnovPodpis)  # Основание подписания
    korrespondentISH = PageElement(
        xpath=KSEDLocators.korrespondentISH)  # Корреспондент

    clickNull = PageElement(xpath=KSEDLocators.clickNull)  # КЛИК ВНЕ АТРИБУТОВ

    #Формы отчетов

    #Мои поисковые запросы
    listChange = PageElement(
        xpath=KSEDLocators.listChange)  # Выпадающий список
    listChangeSZ = PageElement(xpath=KSEDLocators.listChangeSZ
                               )  # Выпадающий список - служебная записка
    listChangeRD = PageElement(
        xpath=KSEDLocators.listChangeRD)  # Выпадающий список - РД
    butSave = PageElement(xpath=KSEDLocators.butSave)  #Кнопка сохранить
    nameZap = PageElement(xpath=KSEDLocators.nameZap)  #Наименование запроса
    zaprosToDel = PageElement(
        xpath=KSEDLocators.zaprosToDel)  #созданный запрос
    butDel = PageElement(xpath=KSEDLocators.butDel)  #Кнопка удалить
    butRed = PageElement(xpath=KSEDLocators.butRed)  # Кнопка редактировать
    butDelAc = PageElement(
        xpath=KSEDLocators.butDelAc)  # Кнопка удалить подтверждение
    butAct = PageElement(
        xpath=KSEDLocators.butAct)  # Кнопка "Действия с выбранными"
    butAct_2 = PageElement(
        xpath=KSEDLocators.butAct_2)  # Кнопка "Действия с выбранными"
    butExp = PageElement(xpath=KSEDLocators.butExp)  # Кнопка экспорта
    butExp_2 = PageElement(xpath=KSEDLocators.butExp_2)  # Кнопка экспорта
    checkBoxFirst = PageElement(
        xpath=KSEDLocators.checkBoxFirst)  # Первый чекбокс в списке
    butFavorite = PageElement(
        xpath=KSEDLocators.butFavorite)  # Кнопка добавить в избранное
    butOK = PageElement(
        xpath=KSEDLocators.butOK)  #Кнопка OK добавить в избранное
    butSelExp = PageElement(
        xpath=KSEDLocators.butSelExp)  # Кнопка экспорта выбранного
 class TestPage(PageObject):
     test_elem = MultiPageElement(css='foo', context=True)
Beispiel #29
0
 def __init__(self, driver):
     self.tasks = MultiPageElement(css=self.selector)
     PageObject.__init__(self, driver)
class BaiduSearchPage(BaiduHomePage):
    '''百度搜索结果页'''
    search_nums_text = PageElement(class_name="nums_text")
    search_tab_item = MultiPageElement(class_name="s-tab-item")