Skip to content

Comments

Добавлены тесты для оформления заказа#1

Open
Alexey3234 wants to merge 4 commits intomainfrom
develop
Open

Добавлены тесты для оформления заказа#1
Alexey3234 wants to merge 4 commits intomainfrom
develop

Conversation

@Alexey3234
Copy link
Owner

No description provided.

@pytest.fixture
def driver():
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://qa-scooter.praktikum-services.ru/")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно лучше: здесь и далее: урлы стоит хранить в отдельном модуле и конкатенировать с базовым, так будет проще поддерживать несколько стендов

self.driver = driver
self.locators = MainPageLocators

def click_order_button_header(self):

This comment was marked as resolved.

self.locators = MainPageLocators

def click_order_button_header(self):
WebDriverWait(self.driver, 10).until(

This comment was marked as duplicate.

from pages.main_page import MainPage
from pages.order_page import OrderPage

ORDER_DATA = [

This comment was marked as resolved.

@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.

safe_click(driver, period_option)

with allure.step('Дополнительные параметры заказа'):
if order_data["color"] is not None:

This comment was marked as resolved.

order_page = OrderPage(driver)

with allure.step('Открытие формы заказа через кнопку в шапке'):
order_button = WebDriverWait(driver, 20).until(

This comment was marked as duplicate.

)
safe_click(driver, logo)

with allure.step('Проверка редиректа на главную страницу'):

This comment was marked as duplicate.


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.

EC.presence_of_all_elements_located(MainPageLocators.QUESTION_PANEL)
)

for answer in all_answers:

This comment was marked as duplicate.

… обращения к драйверу, тестовые сценарии оформлены в тестовые классы, тестовые сценарии заканчиваются проверками Assert
def close_cookie_banner(self, timeout=5):
try:
# Используем локатор из BaseLocators вместо жестко заданного
if self.is_element_visible(BaseLocators.COOKIE_BANNER, timeout):

This comment was marked as resolved.

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.



class TestOrderFlow:
ORDER_DATA = [

This comment was marked as resolved.

order_data = self.ORDER_DATA[0]
main_page = MainPage(driver)
order_page = OrderPage(driver)
base_page = BasePage(driver)

This comment was marked as resolved.


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.


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.

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.


@allure.step("Открыть главную страницу")
def open(self):
self.driver.get("https://qa-scooter.praktikum-services.ru/")

This comment was marked as resolved.


@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.

@allure.feature('Раздел "Вопросы о важном"')
class TestQuestionsSection:

@allure.step('Прокрутить к разделу вопросов')

This comment was marked as resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants