Ejemplo n.º 1
0
 def assembly_of_locators_with_id_resume(
         self):  # сборка локаторов с id резюме
     singleton = Singleton()
     resume_in_responses_to_vacancy = (By.XPATH,
                                       ('//a[contains(@href, "/resume/' +
                                        singleton.id_resume + '")]'))
     return resume_in_responses_to_vacancy
Ejemplo n.º 2
0
 def confirmation_opening_of_vacancy_page(
         self, language):  # подтверждение открытия страницы вакансии
     singleton = Singleton()
     if language == '/ua':
         assert self.browser.current_url == f'{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}/ua/vacancy/' + singleton.id_vacancies, 'Не правильный URL'
     elif language == '':
         assert self.browser.current_url == f'{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}/vacancy/' + singleton.id_vacancies, 'Не правильный URL'
     elif language == '/en':
         assert self.browser.current_url == f'{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}/en/vacancy/' + singleton.id_vacancies, 'Не правильный URL'
Ejemplo n.º 3
0
    def login_and_mail_generation(self, key):
        time_now = str(int(time.time()))
        login_ru = 'testLogin_' + time_now
        login_ua = login_ru + 'ua'
        login_en = login_ru + 'en'

        email_ru = TestData.email[0] + time_now + TestData.email[1]
        email_ua = TestData.email[0] + time_now + 'ua' + TestData.email[1]
        email_en = TestData.email[0] + time_now + 'en' + TestData.email[1]

        singleton = Singleton()
        singleton.logins_and_mails[key] = [[login_ru, email_ru],
                                           [login_ua, email_ua],
                                           [login_en, email_en]]
Ejemplo n.º 4
0
 def assembly_of_locators_with_id_vacancies(
         self):  # сборка локаторов с id вакансии
     singleton = Singleton()
     button_vacancy_menu = (By.CSS_SELECTOR,
                            ('#my-vacancy-' + singleton.id_vacancies +
                             ' .share-btn'))
     button_edit = (By.XPATH,
                    ('//div[@id="my-vacancy-' + singleton.id_vacancies +
                     '"]//a[contains(@href, "/vacancy/' +
                     singleton.id_vacancies + '/edit")]'))
     button_show_responses = (By.XPATH,
                              ('//a[contains(@href, "/vacancy/' +
                               singleton.id_vacancies + '/feedback")]'))
     new_response_icon = (By.CSS_SELECTOR,
                          ('#my-vacancy-' + singleton.id_vacancies +
                           ' .counter.red'))
     locators = [
         button_vacancy_menu, button_edit, button_show_responses,
         new_response_icon
     ]
     return locators
Ejemplo n.º 5
0
 def assembly_of_locators_with_id_product_and_id_purchase(
         self):  # сборка локаторов с id продукта и id покупок
     singleton = Singleton()
     product_in_non_activated_services = []
     product_in_activated_services = []
     button_product_activation = []
     arrow_for_viewing_options_available_in_package = []
     number_of_vacancies_available = []
     locators = []
     for id in singleton.id_purchase:
         product_in_non_activated_services.append(
             (By.CSS_SELECTOR,
              ('.tab-deactivate-servises .packages-wrap[data-product-id="' +
               singleton.id_product + '"][data-purchases-id="' + id +
               '"]')))
         product_in_activated_services.append(
             (By.CSS_SELECTOR,
              ('.tab-activated-servises .packages-wrap[data-product-id="' +
               singleton.id_product + '"][data-purchases-id="' + id +
               '"]')))
         button_product_activation.append(
             (By.XPATH,
              ('//a[contains(@href, "/cart/active?id=' + id + '")]')))
         arrow_for_viewing_options_available_in_package.append(
             (By.CSS_SELECTOR,
              ('.tab-activated-servises .packages-wrap[data-product-id="' +
               singleton.id_product + '"][data-purchases-id="' + id +
               '"] .more')))
         number_of_vacancies_available.append(
             (By.CSS_SELECTOR,
              ('.tab-activated-servises .packages-wrap[data-product-id="' +
               singleton.id_product + '"][data-purchases-id="' + id +
               '"] p.small-text')))
     locators.append(product_in_non_activated_services)
     locators.append(product_in_activated_services)
     locators.append(button_product_activation)
     locators.append(arrow_for_viewing_options_available_in_package)
     locators.append(number_of_vacancies_available)
     return locators
Ejemplo n.º 6
0
def test_adding_resume(browser, language):  # добавление резюме
    url_page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}{UrlStartPage.suffix_page}"
    page = OllPage(browser, url_page)
    # browser.maximize_window()
    page.open()
    browser.refresh()
    page.opening_pop_up_for_login()  # нажатие на кнопку для открытия pop-up окна для регистрации или авторизации
    page.user_authorization(language, 2)  # авторизация пользователя
    page.opening_authorized_user_menu()  # нажатие на кнопку для открытия меню авторизированного пользователя
    page.go_to_personal_cabinet_page()  # нажатие на кнопку для перехода на страницу личного кабинета

    job_seeker_personal_cabinet_page = JobSeekerPersonalCabinetPage(browser, browser.current_url)
    job_seeker_personal_cabinet_page.go_to_my_resume_page()  # переход на страницу "Мои резюме"

    my_resume_page = MyResumePage(browser, browser.current_url)
    my_resume_page.go_to_add_resume_page()  # переход на страницу "Разместить резюме"

    add_resume_page = ResumeAddPage(browser, browser.current_url)
    add_resume_page.filling_in_required_fields()  # заполнение обязательных полей
    browser.execute_script("window.scrollBy(0, -4000);")
    add_resume_page.filling_in_optional_fields()  # заполнение не обязательных полей
    add_resume_page.percentage_check_of_resume_completion()  # проверка заполнения резюме в процентах
    add_resume_page.checking_status_level_filling_resume(language)  # проверка статуса уровня заполнения резюме
    add_resume_page.submitting_resume_for_publication()  # отправка резюме на публикацию

    my_resume_page.waiting_for_my_resumes_page_to_open(language)  # ожидание открытия страницы 'Мои резюме'
    my_resume_page.confirmation_of_opening_of_page_my_resumes(language)  # подтверждение открытия страницы 'Мои резюме'
    my_resume_page.checking_message_confirming_submission_of_resume_for_moderation(language)  # проверка сообщения о подтверждении отправки резюме на модерацию

    admin_page = AdminPage(browser, UrlPageAdmin.url_page_admin)
    admin_page.open()
    admin_page.admin_authorization()
    admin_page.opening_dropdown_list_work()  # открытие выпадающего списка "Work"
    admin_page.go_to_resumes_page()  # переход на страницу резюме

    admin_resumes_page = AdminResumesPage(browser, browser.current_url)
    admin_resumes_page.resume_search_by_job_title()  # поиск резюме по названию должности
    singleton = Singleton()
    singleton.id_resume = admin_resumes_page.getting_resume_id()  # получение id резюме
    admin_resumes_page.checking_that_resume_status_is_on_moderated()  # проверка что статус резюме 'На модерацию'

    url_resume_page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}/resume/{singleton.id_resume}"
    resume_page = ResumePage(browser, url_resume_page)
    resume_page.open()
    resume_page.checking_opening_of_page_of_an_unpublished_resume(language)  # проверка открытия страницы не опубликованного резюме

    admin_page.open()
    admin_page.opening_dropdown_list_work()  # открытие выпадающего списка "Work"
    admin_page.go_to_resumes_page()  # переход на страницу всех резюме

    admin_resumes_page = AdminResumesPage(browser, browser.current_url)
    admin_resumes_page.resume_search_by_job_title()  # поиск резюме по названию должности
    admin_resumes_page.go_to_object_editing_page()  # переход на страницу редактирования резюме

    admin_resume_edit_page = AdminResumeEditPage(browser, browser.current_url)
    admin_resume_edit_page.change_resume_status_to_published()  # изменение статуса резюме на 'Опубликовано'

    admin_resumes_page.waiting_to_save_status_and_open_resume_page()  # ожидание сохранения статуса и открытия страницы всех рузюме

    url_resume_page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}/resume/{singleton.id_resume}"
    resume_page = ResumePage(browser, url_resume_page)
    resume_page.open()
    resume_page.checking_opening_of_page_of_published_resume()  # проверка открытия страницы опубликованного резюме
Ejemplo n.º 7
0
 def assembly_of_locators_with_id_order(self):
     singleton = Singleton()
     found_order = (By.XPATH,
                    ('//li[text()=" Заказ #' + singleton.id_order + '"]'))
     return found_order
Ejemplo n.º 8
0
    def test_package_purchase_1_vacancy_and_orders_processing_and_activating_it_on_site(
        self, browser, language
    ):  # покупка пакета "1 вакансия" и проведение заказа в админке и активация его на сайте
        url_page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}{UrlStartPage.suffix_page}"
        page = OllPage(browser, url_page)
        # browser.maximize_window()
        page.open()
        page.opening_pop_up_for_login(
        )  # нажатие на кнопку для открытия pop-up окна для регистрации или авторизации
        page.user_authorization(language, 1)  # авторизация пользователя
        page.opening_authorized_user_menu(
        )  # нажатие на кнопку для открытия меню авторизированного пользователя
        page.go_to_personal_cabinet_page(
        )  # нажатие на кнопку для перехода на страницу личного кабинета

        company_personal_cabinet_page = CompanyPersonalCabinetPage(
            browser, browser.current_url)
        company_personal_cabinet_page.go_to_my_vacancies_page(
        )  # переход на страницу "Мои вакансии"

        my_vacancies_page = MyVacanciesPage(browser, browser.current_url)
        my_vacancies_page.go_to_vacancy_add_page(
        )  # переход на страницу "Добавить вакансию"

        add_vacancy_page = VacancyAddPage(browser, browser.current_url)
        add_vacancy_page.absence_of_button_to_publish(
        )  # проверка отсутствия кнопки "Опубликовать"

        page.opening_authorized_user_menu(
        )  # нажатие на кнопку для открытия меню авторизированного пользователя
        page.go_to_personal_cabinet_page(
        )  # нажатие на кнопку для перехода на страницу личного кабинета

        company_personal_cabinet_page.go_to_services_and_prices_page(
        )  # переход на страницу "Услуги и цены"

        services_and_prices_page = ServicesAndPricesPage(
            browser, browser.current_url)
        services_and_prices_page.browser.execute_script(
            "window.scrollBy(0, 500);")
        singleton = Singleton()
        singleton.id_product = services_and_prices_page.adding_to_cart_1_vacancy_and_getting_product_id(
        )  # добавление в корзину "1 вакансия" и получение id продукта
        services_and_prices_page.click_button_buy_in_basket(
        )  # нажатие кнопки "Курить" в корзине
        services_and_prices_page.verification_of_message_after_purchase(
            language)  # проверка сообщения после покупки

        page.opening_authorized_user_menu(
        )  # нажатие на кнопку для открытия меню авторизированного пользователя
        page.go_to_personal_cabinet_page(
        )  # нажатие на кнопку для перехода на страницу личного кабинета

        company_personal_cabinet_page.go_to_my_vacancies_page(
        )  # переход на страницу "Мои вакансии"

        my_vacancies_page.go_to_vacancy_add_page(
        )  # переход на страницу "Добавить вакансию"

        add_vacancy_page.absence_of_button_to_publish(
        )  # проверка отсутствия кнопки "Опубликовать"

        admin_page = AdminPage(browser, UrlPageAdmin.url_page_admin)
        admin_page.open()
        admin_page.admin_authorization()
        admin_page.opening_dropdown_list_work(
        )  # открытие выпадающего списка "Work"
        admin_page.go_to_order_page()  # переход на страницу заказов
        admin_page.search_for_user_orders_by_email(
            language, 1)  # поиск заказов пользователя по e-mail
        admin_page.order_processing(
        )  # проведение заказа, изменение статуса заказа с "Новый" на "Проведенный"
        id_order = admin_page.getting_last_order_id_of_user(
        )  # получение последнего id заказа пользователя

        admin_page.opening_dropdown_list_work(
        )  # открытие выпадающего списка "Work"
        admin_page.go_to_user_purchases_page(
        )  # переход на страницу "Покупки пользователей"
        singleton.id_purchase = admin_page.getting_id_of_purchase(
            id_order)  # получение id покупки

        url_page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}{UrlStartPage.suffix_page}"
        page = OllPage(browser, url_page)
        # browser.maximize_window()
        page.open()

        page.opening_authorized_user_menu(
        )  # нажатие на кнопку для открытия меню авторизированного пользователя
        page.go_to_personal_cabinet_page(
        )  # нажатие на кнопку для перехода на страницу личного кабинета

        company_personal_cabinet_page.go_to_my_vacancies_page(
        )  # переход на страницу "Мои вакансии"

        my_vacancies_page.go_to_vacancy_add_page(
        )  # переход на страницу "Добавить вакансию"

        add_vacancy_page.absence_of_button_to_publish(
        )  # проверка отсутствия кнопки "Опубликовать"

        page.opening_authorized_user_menu(
        )  # нажатие на кнопку для открытия меню авторизированного пользователя
        page.go_to_personal_cabinet_page(
        )  # нажатие на кнопку для перехода на страницу личного кабинета

        company_personal_cabinet_page = CompanyPersonalCabinetPage(
            browser, browser.current_url)
        company_personal_cabinet_page.go_to_services_and_prices_page(
        )  # переход на страницу "Услуги и цены"

        services_and_prices_page = ServicesAndPricesPage(
            browser, browser.current_url)
        services_and_prices_page.switch_to_tab_not_activated(
        )  # переход на вкладку "Не активированные"
        services_and_prices_page.availability_of_product_in_not_activated_services(
        )  # наличие "1 вакансия" в не активированных услугах
        services_and_prices_page.product_activation()  # активация продукта
        services_and_prices_page.product_availability_in_activated_services(
        )  # наличие "1 вакансия" в активированных услугах

        page.opening_authorized_user_menu(
        )  # нажатие на кнопку для открытия меню авторизированного пользователя
        page.go_to_personal_cabinet_page(
        )  # нажатие на кнопку для перехода на страницу личного кабинета

        company_personal_cabinet_page.go_to_my_vacancies_page(
        )  # переход на страницу "Мои вакансии"

        my_vacancies_page.go_to_vacancy_add_page(
        )  # переход на страницу "Добавить вакансию"

        add_vacancy_page.submitting_vacancy_for_publication(
        )  # проверка наличия кнопки "Опубликовать"
Ejemplo n.º 9
0
def test_adding_vacancies(browser, language):  # добавление вакансии
    url_Page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}{UrlStartPage.suffix_page}"
    page = OllPage(browser, url_Page)
    # browser.maximize_window()
    page.open()
    browser.refresh()
    page.opening_pop_up_for_login()  # нажатие на кнопку для открытия pop-up окна для регистрации или авторизации
    page.user_authorization(language, 1)  # авторизация пользователя
    page.opening_authorized_user_menu()  # нажатие на кнопку для открытия меню авторизированного пользователя
    page.go_to_personal_cabinet_page()  # нажатие на кнопку для перехода на страницу личного кабинета

    company_personal_cabinet_page = CompanyPersonalCabinetPage(browser, browser.current_url)
    company_personal_cabinet_page.go_to_my_vacancies_page()  # переход на страницу "Мои вакансии"

    my_vacancies_page = MyVacanciesPage(browser, browser.current_url)
    my_vacancies_page.go_to_vacancy_add_page()  # переход на страницу "Добавить вакансию"

    add_vacancy_page = VacancyAddPage(browser, browser.current_url)
    add_vacancy_page.filling_in_required_fields()  # заполнение обязательных полей
    browser.execute_script("window.scrollBy(0, -300);")
    add_vacancy_page.filling_in_optional_fields()  # заполнение не обязательных полей
    add_vacancy_page.submitting_vacancy_for_publication()  # отправка вакансии на публикацию

    my_vacancies_page.waiting_for_my_vacancies_page_to_open(language)  # ожидание открытия страницы 'Мои вакансии'
    my_vacancies_page.confirmation_of_opening_of_page_my_vacancies(language)  # подтверждение открытия страницы 'Мои вакансии'
    my_vacancies_page.checking_message_confirming_submission_of_vacancy_for_moderation(language)  # проверка сообщения о подтверждении отправки вакансии на модерацию

    admin_page = AdminPage(browser, UrlPageAdmin.url_page_admin)
    admin_page.open()
    admin_page.admin_authorization()
    admin_page.opening_dropdown_list_work()  # открытие выпадающего списка "Work"
    admin_page.go_to_vacancies_page()  # переход на страницу вакансий
    admin_page.vacancy_search_by_job_title()  # поиск вакансии по названию должности

    singleton = Singleton()
    singleton.id_vacancies = admin_page.getting_vacancy_id()  # получение id вакансии
    admin_page.checking_that_vacancy_status_is_on_moderated()  # проверка что статус вакансии 'На модерацию'

    url_Vacancy_Page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}/vacancy/{singleton.id_vacancies}"
    vacancy_page = VacancyPage(browser, url_Vacancy_Page)
    vacancy_page.open()
    vacancy_page.checking_opening_of_page_of_an_unpublished_vacancy(language)  # проверка открытия страницы не опубликованной вакансии

    admin_page.open()
    admin_page.opening_dropdown_list_work()  # открытие выпадающего списка "Work"
    admin_page.go_to_vacancies_page()  # переход на страницу вакансий
    admin_page.vacancy_search_by_job_title()  # поиск вакансии по названию должности
    admin_page.go_to_object_editing_page()  # переход на страницу редактирования вакансии

    admin_vacancy_edit_page = AdminVacancyEditPage(browser, browser.current_url)
    admin_vacancy_edit_page.change_vacancy_status_to_published()  # изменение статуса вакансии на 'Опубликовано'

    admin_page.waiting_to_save_status_and_open_vacansies_page()  # ожидание сохранения статуса и открытия страницы вакансий

    url_Vacancy_Page = f"{UrlStartPage.prefix}logincasino.work{UrlStartPage.suffix}{language}{UrlStartPage.suffix_page}/vacancy/{singleton.id_vacancies}"
    vacancy_page = VacancyPage(browser, url_Vacancy_Page)
    vacancy_page.open()
    vacancy_page.checking_opening_of_page_of_published_vacancy()  # проверка открытия страницы опубликованной вакансии

    page.opening_authorized_user_menu()  # нажатие на кнопку для открытия меню авторизированного пользователя
    page.go_to_personal_cabinet_page()  # нажатие на кнопку для перехода на страницу личного кабинета

    company_personal_cabinet_page.go_to_my_vacancies_page()  # переход на страницу "Мои вакансии"

    my_vacancies_page.go_to_vacancy_add_page()  # переход на страницу "Добавить вакансию"

    add_vacancy_page.absence_of_button_to_publish()  # проверка отсутствия кнопки "Опубликовать"

    page.opening_authorized_user_menu()  # нажатие на кнопку для открытия меню авторизированного пользователя
    page.go_to_personal_cabinet_page()  # нажатие на кнопку для перехода на страницу личного кабинета

    company_personal_cabinet_page.go_to_services_and_prices_page()  # переход на страницу "Услуги и цены"

    services_and_prices_page = ServicesAndPricesPage(browser, browser.current_url)

    services_and_prices_page.checking_decrease_in_number_of_available_vacancies_for_publication_in_monthly_free_vacancy_package()  # проверка уменьшения количества доступных вакансий для публикации в пакете "Ежемесячная бесплатная вакансия"
Ejemplo n.º 10
0
 def assembly_of_locators_with_id_vacancies(
         self):  # сборка локаторов с id вакансии
     singleton = Singleton()
     vacancy = (By.XPATH, ('//a[contains(@href, "/vacancy/' +
                           singleton.id_vacancies + '")]'))
     return vacancy