Conversation
| @pytest.fixture | ||
| def driver(): | ||
| driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) | ||
| driver.get("https://qa-scooter.praktikum-services.ru/") |
There was a problem hiding this comment.
Можно лучше: здесь и далее: урлы стоит хранить в отдельном модуле и конкатенировать с базовым, так будет проще поддерживать несколько стендов
| self.driver = driver | ||
| self.locators = MainPageLocators | ||
|
|
||
| def click_order_button_header(self): |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
pages/main_page.py
Outdated
| self.locators = MainPageLocators | ||
|
|
||
| def click_order_button_header(self): | ||
| WebDriverWait(self.driver, 10).until( |
This comment was marked as duplicate.
This comment was marked as duplicate.
Sorry, something went wrong.
tests/test_orders.py
Outdated
| from pages.main_page import MainPage | ||
| from pages.order_page import OrderPage | ||
|
|
||
| ORDER_DATA = [ |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_orders.py
Outdated
| @allure.story('Заказ через кнопку в шапке') | ||
| @allure.title('Проверка оформления заказа через кнопку в шапке сайта') | ||
| @pytest.mark.parametrize("order_data", ORDER_DATA) | ||
| def test_order_flow_from_header(driver, order_data): |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_orders.py
Outdated
| safe_click(driver, period_option) | ||
|
|
||
| with allure.step('Дополнительные параметры заказа'): | ||
| if order_data["color"] is not None: |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_orders.py
Outdated
| order_page = OrderPage(driver) | ||
|
|
||
| with allure.step('Открытие формы заказа через кнопку в шапке'): | ||
| order_button = WebDriverWait(driver, 20).until( |
This comment was marked as duplicate.
This comment was marked as duplicate.
Sorry, something went wrong.
tests/test_orders.py
Outdated
| ) | ||
| safe_click(driver, logo) | ||
|
|
||
| with allure.step('Проверка редиректа на главную страницу'): |
This comment was marked as duplicate.
This comment was marked as duplicate.
Sorry, something went wrong.
tests/test_orders.py
Outdated
|
|
||
| with allure.step('Открытие формы заказа через кнопку в шапке'): | ||
| order_button = WebDriverWait(driver, 20).until( | ||
| EC.element_to_be_clickable(main_page.locators.ORDER_BUTTON_HEADER) |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_questions.py
Outdated
| EC.presence_of_all_elements_located(MainPageLocators.QUESTION_PANEL) | ||
| ) | ||
|
|
||
| for answer in all_answers: |
This comment was marked as duplicate.
This comment was marked as duplicate.
Sorry, something went wrong.
… обращения к драйверу, тестовые сценарии оформлены в тестовые классы, тестовые сценарии заканчиваются проверками Assert
pages/base_page.py
Outdated
| def close_cookie_banner(self, timeout=5): | ||
| try: | ||
| # Используем локатор из BaseLocators вместо жестко заданного | ||
| if self.is_element_visible(BaseLocators.COOKIE_BANNER, timeout): |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
pages/order_page.py
Outdated
| def select_rental_period(self, period_index): | ||
| self.close_datepicker() | ||
| self.safe_click(self.locators.RENTAL_PERIOD, timeout=20) | ||
| periods = WebDriverWait(self.driver, 20).until( |
This comment was marked as duplicate.
This comment was marked as duplicate.
Sorry, something went wrong.
tests/test_orders.py
Outdated
|
|
||
|
|
||
| class TestOrderFlow: | ||
| ORDER_DATA = [ |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_orders.py
Outdated
| order_data = self.ORDER_DATA[0] | ||
| main_page = MainPage(driver) | ||
| order_page = OrderPage(driver) | ||
| base_page = BasePage(driver) |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_orders.py
Outdated
|
|
||
| with allure.step('Закрытие новой вкладки и возврат'): | ||
| driver.close() | ||
| driver.switch_to.window(driver.window_handles[0]) No newline at end of file |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_orders.py
Outdated
|
|
||
| with allure.step('Закрытие новой вкладки и возврат'): | ||
| driver.close() | ||
| driver.switch_to.window(driver.window_handles[0]) No newline at end of file |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_questions.py
Outdated
| main_page.click_question(0) | ||
| assert main_page.is_answer_visible(0), "Ответ 0 должен быть видим после клика" | ||
|
|
||
| for i in range(1, 8): |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
pages/main_page.py
Outdated
|
|
||
| @allure.step("Открыть главную страницу") | ||
| def open(self): | ||
| self.driver.get("https://qa-scooter.praktikum-services.ru/") |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
pages/main_page.py
Outdated
|
|
||
| @allure.step("Нажать кнопку 'Заказать' в футере") | ||
| def click_order_button_footer(self, timeout=20): | ||
| self.wait.until(EC.presence_of_element_located(self.locators.ORDER_BUTTON_FOOTER)) |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
tests/test_questions.py
Outdated
| @allure.feature('Раздел "Вопросы о важном"') | ||
| class TestQuestionsSection: | ||
|
|
||
| @allure.step('Прокрутить к разделу вопросов') |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
No description provided.