docs: добавить стандартизированные docstrings для основных модулей
Добавлены полные docstrings в основные модули проекта для улучшения документации кода.pull/1/head
parent
10315ba38f
commit
d975648fc0
|
|
@ -0,0 +1,98 @@
|
|||
from elements.text_element import Text
|
||||
from playwright.sync_api import Page, expect
|
||||
from tools.logger import get_logger
|
||||
|
||||
from components.base_component import BaseComponent
|
||||
|
||||
logger = get_logger("ALERT")
|
||||
|
||||
|
||||
class AlertComponent(BaseComponent):
|
||||
"""Компонент для работы с alert-окнами.
|
||||
|
||||
Поддерживает различные типы alert-окон: error, success, info, warning.
|
||||
|
||||
Атрибуты:
|
||||
page: экземпляр страницы Playwright
|
||||
alert_type: тип alert-окна (error/success/info/warning)
|
||||
text: текстовый элемент сообщения alert-окна
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page, alert_type: str):
|
||||
"""Инициализация компонента alert-окна.
|
||||
|
||||
Args:
|
||||
page: экземпляр страницы Playwright
|
||||
alert_type: тип alert-окна (error/success/info/warning)
|
||||
|
||||
Raises:
|
||||
ValueError: если передан неподдерживаемый тип alert-окна
|
||||
"""
|
||||
super().__init__(page)
|
||||
|
||||
alert_types = ["error", "success", "info", "warning"]
|
||||
if alert_type not in alert_types:
|
||||
raise ValueError("Unsupported type of alert window")
|
||||
|
||||
self.alert_type = alert_type
|
||||
self.text = Text(page,
|
||||
f"//div[@class='v-alert {self.alert_type}']/div",
|
||||
"Alert message")
|
||||
|
||||
# Действия:
|
||||
def get_text(self) -> str:
|
||||
"""Получение текста сообщения из alert-окна.
|
||||
|
||||
Returns:
|
||||
str: текст сообщения alert-окна
|
||||
"""
|
||||
return self.text.get_text(0)
|
||||
|
||||
# Проверки:
|
||||
def check_presence(self, text: str)-> None:
|
||||
"""Проверка наличия alert-окна с заданным текстом.
|
||||
|
||||
Args:
|
||||
text: текст для проверки (если пустая строка - проверяется только наличие окна)
|
||||
|
||||
Raises:
|
||||
AssertionError: если alert-окно не найдено
|
||||
"""
|
||||
msg = f"No {self.alert_type} alert window on page"
|
||||
if text == "":
|
||||
expect(self.page.get_by_role("alert")).to_be_visible(), msg
|
||||
else:
|
||||
expect(
|
||||
self.page.get_by_role("alert").filter(
|
||||
has_text=text)).to_be_visible(), msg
|
||||
|
||||
def check_absence(self, text: str, timeout: int = 30000):
|
||||
"""Проверка отсутствия alert-окна с заданным текстом.
|
||||
|
||||
Args:
|
||||
text: текст для проверки
|
||||
timeout: время ожидания исчезновения (в миллисекундах)
|
||||
|
||||
Raises:
|
||||
AssertionError: если alert-окно не исчезает в течение заданного времени
|
||||
"""
|
||||
seconds = int(timeout / 1000)
|
||||
msg = f"Alert {
|
||||
self.alert_type} window should disappear after {seconds} seconds"
|
||||
expect(
|
||||
self.page.get_by_role("alert").filter(
|
||||
has_text=text)).to_be_hidden(
|
||||
timeout=timeout), msg
|
||||
|
||||
def check_text(self, alert_text: str):
|
||||
"""Проверка точного соответствия текста в alert-окне.
|
||||
|
||||
Args:
|
||||
alert_text: ожидаемый текст сообщения
|
||||
|
||||
Raises:
|
||||
AssertionError: если текст не соответствует ожидаемому
|
||||
"""
|
||||
self.text.check_have_text(
|
||||
alert_text, f"Unexpected message in alert {
|
||||
self.alert_type} window")
|
||||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль для работы с компонентом alert-окна в Playwright.
|
||||
|
||||
Содержит класс AlertComponent для взаимодействия с различными типами
|
||||
alert-окон (error, success, info, warning) и проверки их состояния.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page, expect
|
||||
from tools.logger import get_logger
|
||||
from elements.text_element import Text
|
||||
|
|
@ -7,25 +13,21 @@ logger = get_logger("ALERT")
|
|||
|
||||
|
||||
class AlertComponent(BaseComponent):
|
||||
"""Компонент для работы с alert-окнами.
|
||||
"""Компонент для работы с alert-окнами Playwright.
|
||||
|
||||
Поддерживает различные типы alert-окон: error, success, info, warning.
|
||||
|
||||
Атрибуты:
|
||||
page: экземпляр страницы Playwright
|
||||
alert_type: тип alert-окна (error/success/info/warning)
|
||||
text: текстовый элемент сообщения alert-окна
|
||||
Поддерживает типы: error, success, info, warning.
|
||||
Позволяет проверять наличие, отсутствие и текст сообщений.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page, alert_type: str):
|
||||
"""Инициализация компонента alert-окна.
|
||||
"""Инициализирует компонент alert-окна.
|
||||
|
||||
Args:
|
||||
page: экземпляр страницы Playwright
|
||||
alert_type: тип alert-окна (error/success/info/warning)
|
||||
page: Экземпляр страницы Playwright.
|
||||
alert_type: Тип alert-окна (error/success/info/warning).
|
||||
|
||||
Raises:
|
||||
ValueError: если передан неподдерживаемый тип alert-окна
|
||||
ValueError: Если передан неподдерживаемый тип alert-окна.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
|
@ -37,25 +39,24 @@ class AlertComponent(BaseComponent):
|
|||
self.alert_type = alert_type
|
||||
self.text = Text(page, f"//div[@class='v-alert {self.alert_type}']/div", "Alert message")
|
||||
|
||||
# Действия:
|
||||
def get_text(self) -> str:
|
||||
"""Получение текста сообщения из alert-окна.
|
||||
"""Возвращает текст сообщения из alert-окна.
|
||||
|
||||
Returns:
|
||||
str: текст сообщения alert-окна
|
||||
str: Текст сообщения.
|
||||
"""
|
||||
|
||||
return self.text.get_text(0)
|
||||
|
||||
# Проверки:
|
||||
def check_alert_presence(self, text: str):
|
||||
"""Проверка наличия alert-окна с заданным текстом.
|
||||
"""Проверяет наличие alert-окна с заданным текстом.
|
||||
|
||||
Args:
|
||||
text: текст для проверки (если пустая строка - проверяется только наличие окна)
|
||||
text: Текст для проверки. Если пустая строка - проверяет только
|
||||
наличие окна.
|
||||
|
||||
Raises:
|
||||
AssertionError: если alert-окно не найдено
|
||||
AssertionError: Если alert-окно не найдено.
|
||||
"""
|
||||
|
||||
msg = f"No {self.alert_type} alert window on page"
|
||||
|
|
@ -65,28 +66,29 @@ class AlertComponent(BaseComponent):
|
|||
expect(self.page.get_by_role("alert").filter(has_text=text)).to_be_visible(), msg
|
||||
|
||||
def check_alert_absence(self, text: str, timeout: int = 30000):
|
||||
"""Проверка отсутствия alert-окна с заданным текстом.
|
||||
"""Проверяет отсутствие alert-окна с заданным текстом.
|
||||
|
||||
Args:
|
||||
text: текст для проверки
|
||||
timeout: время ожидания исчезновения (в миллисекундах)
|
||||
text: Текст для проверки.
|
||||
timeout: Время ожидания исчезновения (мс).
|
||||
|
||||
Raises:
|
||||
AssertionError: если alert-окно не исчезает в течение заданного времени
|
||||
AssertionError: Если окно не исчезает в течение заданного времени.
|
||||
"""
|
||||
|
||||
seconds = int(timeout/1000)
|
||||
msg = f"Alert {self.alert_type} window should disappear after {seconds} seconds"
|
||||
expect(self.page.get_by_role("alert").filter(has_text=text)).to_be_hidden(timeout=timeout), msg
|
||||
|
||||
def check_text(self, alert_text: str):
|
||||
"""Проверка точного соответствия текста в alert-окне.
|
||||
"""Проверяет точное соответствие текста в alert-окне.
|
||||
|
||||
Args:
|
||||
alert_text: ожидаемый текст сообщения
|
||||
alert_text: Ожидаемый текст сообщения.
|
||||
|
||||
Raises:
|
||||
AssertionError: если текст не соответствует ожидаемому
|
||||
AssertionError: Если текст не соответствует ожидаемому.
|
||||
"""
|
||||
|
||||
self.text.check_have_text(alert_text,
|
||||
f"Unexpected message in alert {self.alert_type} window")
|
||||
f"Unexpected message in alert {self.alert_type} window")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
"""Базовый модуль для работы с компонентами страницы.
|
||||
|
||||
Содержит базовый класс для взаимодействия с элементами страницы через Playwright.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page, Locator, expect
|
||||
from tools.logger import get_logger
|
||||
|
||||
|
|
@ -11,17 +16,15 @@ class BaseComponent:
|
|||
- получение локаторов
|
||||
- проверка видимости элементов
|
||||
- работа с прокруткой
|
||||
|
||||
Атрибуты:
|
||||
page: экземпляр страницы Playwright
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page):
|
||||
"""Инициализация базового компонента.
|
||||
|
||||
Args:
|
||||
page: экземпляр страницы Playwright
|
||||
page: экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
self.page = page
|
||||
|
||||
# Действия:
|
||||
|
|
@ -29,14 +32,15 @@ class BaseComponent:
|
|||
"""Получение объекта Locator из строки или существующего Locator.
|
||||
|
||||
Args:
|
||||
locator: строка с CSS/XPath селектором или объект Locator
|
||||
locator: строка с CSS/XPath селектором или объект Locator.
|
||||
|
||||
Returns:
|
||||
Locator: объект для работы с элементом
|
||||
Locator: объект для работы с элементом.
|
||||
|
||||
Raises:
|
||||
TypeError: если передан некорректный тип локатора
|
||||
TypeError: если передан некорректный тип локатора.
|
||||
"""
|
||||
|
||||
if isinstance(locator, Locator):
|
||||
return locator
|
||||
elif isinstance(locator, str):
|
||||
|
|
@ -55,53 +59,57 @@ class BaseComponent:
|
|||
# return elements
|
||||
|
||||
# Проверки:
|
||||
def check_presence(self, locator, msg):
|
||||
def check_presence(self, locator: str | Locator, msg: str) -> None:
|
||||
"""Проверка видимости элемента на странице.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента (строка или объект Locator)
|
||||
msg: сообщение об ошибке при неудачной проверке
|
||||
locator: локатор элемента (строка или объект Locator).
|
||||
msg: сообщение об ошибке при неудачной проверке.
|
||||
|
||||
Raises:
|
||||
AssertionError: если элемент не виден на странице
|
||||
AssertionError: если элемент не виден на странице.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
expect(loc).to_be_visible(visible=True, timeout=12000), msg
|
||||
|
||||
def is_scrollable_vertically(self, locator) -> bool:
|
||||
def is_scrollable_vertically(self, locator: str | Locator) -> bool:
|
||||
"""Проверка возможности вертикальной прокрутки элемента.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента
|
||||
locator: локатор элемента.
|
||||
|
||||
Returns:
|
||||
bool: True если элемент можно прокрутить вертикально
|
||||
bool: True если элемент можно прокрутить вертикально.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
return loc.evaluate("el => el.scrollHeight > el.clientHeight")
|
||||
|
||||
def is_scrollable_horizontally(self, locator) -> bool:
|
||||
def is_scrollable_horizontally(self, locator: str | Locator) -> bool:
|
||||
"""Проверка возможности горизонтальной прокрутки элемента.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента
|
||||
locator: локатор элемента.
|
||||
|
||||
Returns:
|
||||
bool: True если элемент можно прокрутить горизонтально
|
||||
bool: True если элемент можно прокрутить горизонтально.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
return loc.evaluate("el => el.scrollWidth > el.clientWidth")
|
||||
|
||||
# Методы прокрутки:
|
||||
def scroll_up(self, locator):
|
||||
def scroll_up(self, locator: str | Locator) -> None:
|
||||
"""Прокрутка элемента вверх.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента
|
||||
locator: локатор элемента.
|
||||
|
||||
Raises:
|
||||
AssertionError: если прокрутка не выполнена до конца
|
||||
AssertionError: если прокрутка не выполнена до конца.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
loc.evaluate("el => el.scrollTo(0, 0)")
|
||||
loc.wait_for(timeout=2000)
|
||||
|
|
@ -110,15 +118,16 @@ class BaseComponent:
|
|||
scroll_position = loc.evaluate("el => el.scrollTop")
|
||||
assert scroll_position == 0, "Invalid postion after scroll up"
|
||||
|
||||
def scroll_down(self, locator):
|
||||
def scroll_down(self, locator: str | Locator) -> None:
|
||||
"""Прокрутка элемента вниз.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента
|
||||
locator: локатор элемента.
|
||||
|
||||
Raises:
|
||||
AssertionError: если прокрутка не выполнена до конца
|
||||
AssertionError: если прокрутка не выполнена до конца.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
loc.evaluate("el => el.scrollTo(0, el.scrollHeight)")
|
||||
loc.wait_for(timeout=2000)
|
||||
|
|
@ -127,15 +136,16 @@ class BaseComponent:
|
|||
scroll_position = loc.evaluate("el => el.scrollTop")
|
||||
assert scroll_position > 0, "Invalid postion after scroll down"
|
||||
|
||||
def scroll_left(self, locator):
|
||||
def scroll_left(self, locator: str | Locator) -> None:
|
||||
"""Прокрутка элемента влево.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента
|
||||
locator: локатор элемента.
|
||||
|
||||
Raises:
|
||||
AssertionError: если прокрутка не выполнена до конца
|
||||
AssertionError: если прокрутка не выполнена до конца.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
|
||||
width = loc.evaluate("el => el.scrollWidth")
|
||||
|
|
@ -148,15 +158,16 @@ class BaseComponent:
|
|||
scroll_position = loc.evaluate("el => el.scrollLeft")
|
||||
assert scroll_position == 0, "Invalid postion after scroll left"
|
||||
|
||||
def scroll_right(self, locator):
|
||||
def scroll_right(self, locator: str | Locator) -> None:
|
||||
"""Прокрутка элемента вправо.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента
|
||||
locator: локатор элемента.
|
||||
|
||||
Raises:
|
||||
AssertionError: если прокрутка не выполнена до конца
|
||||
AssertionError: если прокрутка не выполнена до конца.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
|
||||
width = loc.evaluate("el => el.scrollWidth")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
"""Модуль компонента карточки пользователя.
|
||||
|
||||
Содержит класс для работы с карточкой пользователя через Playwright.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from tools.logger import get_logger
|
||||
from elements.button_element import Button
|
||||
|
|
@ -9,19 +14,16 @@ logger = get_logger("USER_CARD")
|
|||
class CardComponent(BaseComponent):
|
||||
"""Компонент карточки пользователя.
|
||||
|
||||
Предоставляет методы для взаимодействия с элементами карточки пользователя.
|
||||
|
||||
Атрибуты:
|
||||
page: экземпляр страницы Playwright
|
||||
logout_button: кнопка выхода из системы
|
||||
Предоставляет методы для взаимодействия с элементами карточки.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page):
|
||||
"""Инициализация компонента карточки пользователя.
|
||||
"""Инициализирует компонент карточки пользователя.
|
||||
|
||||
Args:
|
||||
page: экземпляр страницы Playwright
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
self.logout_button = Button(
|
||||
|
|
@ -32,10 +34,11 @@ class CardComponent(BaseComponent):
|
|||
|
||||
# Действия:
|
||||
def click_logout_button(self):
|
||||
"""Нажатие кнопки выхода из системы.
|
||||
"""Нажимает кнопку выхода из системы.
|
||||
|
||||
Выполняет клик по кнопке 'Выйти' в карточке пользователя.
|
||||
"""
|
||||
|
||||
self.logout_button.click()
|
||||
|
||||
# Проверки:
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль компонента окна подтверждения действий.
|
||||
|
||||
Содержит класс ConfirmComponent для взаимодействия с окном подтверждения,
|
||||
включая кнопки подтверждения, отмены и закрытия, а также проверки текста.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from tools.logger import get_logger
|
||||
from locators.confirm_locators import ConfirmLocators
|
||||
|
|
@ -12,6 +18,14 @@ class ConfirmComponent(BaseComponent):
|
|||
"""Компонент окна подтверждения действий."""
|
||||
|
||||
def __init__(self, page: Page, cancel_button_text: str, allow_button_text: str):
|
||||
"""Инициализация компонента.
|
||||
|
||||
Args:
|
||||
page: Экземпляр страницы Playwright.
|
||||
cancel_button_text: Текст кнопки отмены.
|
||||
allow_button_text: Текст кнопки подтверждения.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
self.title = Text(page, ConfirmLocators.TITLE, "confirm title")
|
||||
|
|
@ -31,22 +45,37 @@ class ConfirmComponent(BaseComponent):
|
|||
|
||||
# Действия:
|
||||
def click_allow_button(self) -> None:
|
||||
"""Нажатие кнопки подтверждения действия."""
|
||||
"""Нажимает кнопку подтверждения действия."""
|
||||
|
||||
self.allow_button.click()
|
||||
|
||||
def click_cancel_button(self) -> None:
|
||||
"""Нажатие кнопки отмены действия."""
|
||||
"""Нажимает кнопку отмены действия."""
|
||||
|
||||
self.cancel_button.click()
|
||||
|
||||
def click_close_button(self) -> None:
|
||||
"""Нажатие кнопки закрытия окна подтверждения."""
|
||||
"""Нажимает кнопку закрытия окна подтверждения."""
|
||||
|
||||
self.close_button.click()
|
||||
|
||||
# Проверки:
|
||||
def check_title(self, title: str, msg: str) -> None:
|
||||
"""Проверка текста заголовка окна подтверждения."""
|
||||
"""Проверяет текст заголовка окна подтверждения.
|
||||
|
||||
Args:
|
||||
title: Ожидаемый текст заголовка.
|
||||
msg: Сообщение при ошибке.
|
||||
"""
|
||||
|
||||
self.title.check_have_text(title, msg)
|
||||
|
||||
def check_text(self, text: str, msg: str) -> None:
|
||||
"""Проверка текста сообщения в окне подтверждения."""
|
||||
"""Проверяет текст сообщения в окне подтверждения.
|
||||
|
||||
Args:
|
||||
text: Ожидаемый текст сообщения.
|
||||
msg: Сообщение при ошибке.
|
||||
"""
|
||||
|
||||
self.text.check_have_text(text, msg)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль для работы с JSON-контейнерами на веб-страницах.
|
||||
|
||||
Содержит компонент для чтения и проверки JSON-данных в контейнерах.
|
||||
Использует playwright для взаимодействия с элементами страницы.
|
||||
"""
|
||||
|
||||
import json
|
||||
import jsondiff
|
||||
from playwright.sync_api import Page
|
||||
|
|
@ -10,43 +16,46 @@ logger = get_logger("JSON_CONTAINER")
|
|||
class JsonContainerComponent(BaseComponent):
|
||||
"""Компонент для работы с JSON-данными на странице.
|
||||
|
||||
Предоставляет методы для чтения и проверки JSON-данных,
|
||||
отображаемых в специальных контейнерах на странице.
|
||||
|
||||
Атрибуты:
|
||||
page: экземпляр страницы Playwright
|
||||
|
||||
|
||||
Предоставляет методы чтения и проверки JSON-данных в контейнерах.
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page):
|
||||
"""Инициализация JSON-контейнера.
|
||||
"""Инициализирует JSON-контейнер.
|
||||
|
||||
Args:
|
||||
page: экземпляр страницы Playwright
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
# Действия:
|
||||
def read_data(self, locator):
|
||||
"""Чтение и форматирование JSON-данных из указанного локатора.
|
||||
"""Читает и форматирует JSON-данные из указанного локатора.
|
||||
|
||||
Args:
|
||||
locator: локатор элемента, содержащего JSON-данные
|
||||
locator: Локатор элемента с JSON-данными.
|
||||
|
||||
Returns:
|
||||
dict: распарсенный JSON-объект
|
||||
dict: Распарсенный JSON-объект.
|
||||
|
||||
Raises:
|
||||
json.JSONDecodeError: если данные не могут быть преобразованы в JSON
|
||||
json.JSONDecodeError: Если данные не могут быть преобразованы в JSON.
|
||||
"""
|
||||
|
||||
def format_json_string(json_string):
|
||||
"""Вспомогательная функция для форматирования строки JSON.
|
||||
"""Форматирует строку JSON для корректного парсинга.
|
||||
|
||||
Args:
|
||||
json_string: сырая строка с JSON-данными
|
||||
json_string: Сырая строка с JSON-данными.
|
||||
|
||||
Returns:
|
||||
str: отформатированная строка JSON
|
||||
str: Отформатированная строка JSON.
|
||||
"""
|
||||
|
||||
substrings = json_string.splitlines()
|
||||
formatted_string_list = []
|
||||
last_substring = substrings.pop()
|
||||
|
|
@ -85,15 +94,16 @@ class JsonContainerComponent(BaseComponent):
|
|||
|
||||
# Проверки:
|
||||
def check_json_equals(self, actual, expected, msg):
|
||||
"""Сравнение JSON-объектов на идентичность.
|
||||
"""Сравнивает JSON-объекты на идентичность.
|
||||
|
||||
Args:
|
||||
actual: фактический JSON-объект
|
||||
expected: ожидаемый JSON-объект
|
||||
msg: сообщение об ошибке
|
||||
actual: Фактический JSON-объект.
|
||||
expected: Ожидаемый JSON-объект.
|
||||
msg: Сообщение об ошибке.
|
||||
|
||||
Raises:
|
||||
AssertionError: если объекты не идентичны
|
||||
AssertionError: Если объекты не идентичны.
|
||||
"""
|
||||
|
||||
diff = jsondiff.diff(expected, actual, syntax='symmetric')
|
||||
assert len(diff) == 0, f"{msg}. DIFF is {diff}"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
"""Модуль компонента модального окна. Содержит класс для работы с модальными окнами,
|
||||
их элементами и проверками."""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from tools.logger import get_logger
|
||||
from locators.modal_window_locators import ModalWindowLocators
|
||||
|
|
@ -9,7 +12,8 @@ logger = get_logger("MODAL_WINDOW")
|
|||
|
||||
|
||||
class ModalWindowComponent(BaseComponent):
|
||||
"""Компонент модального окна."""
|
||||
"""Компонент модального окна. Предоставляет методы для взаимодействия с окном,
|
||||
его содержимым и проверок."""
|
||||
|
||||
def __init__(self, page: Page):
|
||||
super().__init__(page)
|
||||
|
|
@ -19,83 +23,101 @@ class ModalWindowComponent(BaseComponent):
|
|||
|
||||
# Действия:
|
||||
def add_content_item(self, name: str, item: object) -> None:
|
||||
"""Добавление элемента содержимого в окно."""
|
||||
"""Добавляет элемент содержимого в окно по заданному имени."""
|
||||
|
||||
self.content_items[name] = item
|
||||
|
||||
def get_content_item(self, name: str) -> object | None:
|
||||
"""Получение элемента содержимого по имени."""
|
||||
"""Возвращает элемент содержимого по имени или None, если не найден."""
|
||||
|
||||
return self.content_items.get(name)
|
||||
|
||||
def add_toolbar_title(self, title: str) -> None:
|
||||
"""Добавление заголовка в панель инструментов."""
|
||||
"""Добавляет заголовок в панель инструментов модального окна."""
|
||||
|
||||
self.toolbar.add_title(title)
|
||||
|
||||
def add_toolbar_button(self, locator: str, name: str) -> None:
|
||||
"""Добавление кнопки в панель инструментов."""
|
||||
"""Добавляет кнопку в панель инструментов модального окна."""
|
||||
|
||||
self.toolbar.add_button(locator, name)
|
||||
|
||||
def add_button(self, locator: str, name: str) -> None:
|
||||
"""Добавление кнопки в окно."""
|
||||
"""Добавляет кнопку в модальное окно."""
|
||||
|
||||
self.buttons.append(Button(self.page, locator, name))
|
||||
|
||||
def get_button_by_name(self, name: str) -> Button | None:
|
||||
"""Поиск кнопки по имени."""
|
||||
"""Ищет и возвращает кнопку по имени или None, если не найдена."""
|
||||
|
||||
for button in self.buttons:
|
||||
if button.name == name:
|
||||
return button
|
||||
return None
|
||||
|
||||
def click_button(self, name: str) -> None:
|
||||
"""Нажатие кнопки по имени."""
|
||||
"""Кликает по кнопке с заданным именем. Вызывает ошибку, если не найдена."""
|
||||
|
||||
button = self.get_button_by_name(name)
|
||||
if button is None:
|
||||
assert False, f"Button with name '{name}' not found"
|
||||
button.click()
|
||||
|
||||
def click_toolbar_close_button(self) -> None:
|
||||
"""Нажатие кнопки закрытия в панели инструментов."""
|
||||
"""Кликает по кнопке закрытия в панели инструментов."""
|
||||
|
||||
self.toolbar.click_button("close")
|
||||
|
||||
def scroll_window_down(self) -> None:
|
||||
"""Прокрутка содержимого окна вниз."""
|
||||
"""Прокручивает содержимое окна вниз."""
|
||||
|
||||
self.scroll_down(ModalWindowLocators.MODAL_WINDOW)
|
||||
|
||||
def scroll_window_up(self) -> None:
|
||||
"""Прокрутка содержимого окна вверх."""
|
||||
"""Прокручивает содержимое окна вверх."""
|
||||
|
||||
self.scroll_up(ModalWindowLocators.MODAL_WINDOW)
|
||||
|
||||
def scroll_window_left(self) -> None:
|
||||
"""Прокрутка содержимого окна влево."""
|
||||
"""Прокручивает содержимое окна влево."""
|
||||
|
||||
self.scroll_left(ModalWindowLocators.MODAL_WINDOW)
|
||||
|
||||
def scroll_window_right(self) -> None:
|
||||
"""Прокрутка содержимого окна вправо."""
|
||||
"""Прокручивает содержимое окна вправо."""
|
||||
|
||||
self.scroll_right(ModalWindowLocators.MODAL_WINDOW)
|
||||
|
||||
# Проверки:
|
||||
def check_window_vertical_scrolling(self) -> bool:
|
||||
"""Проверка возможности вертикальной прокрутки."""
|
||||
"""Проверяет возможность вертикальной прокрутки окна."""
|
||||
|
||||
return self.is_scrollable_vertically(ModalWindowLocators.MODAL_WINDOW)
|
||||
|
||||
def check_window_horizontal_scrolling(self) -> bool:
|
||||
"""Проверка возможности горизонтальной прокрутки."""
|
||||
"""Проверяет возможность горизонтальной прокрутки окна."""
|
||||
|
||||
return self.is_scrollable_horizontally(ModalWindowLocators.MODAL_WINDOW)
|
||||
|
||||
def check_by_window_title(self) -> None:
|
||||
"""Проверка наличия окна по заголовку."""
|
||||
"""Проверяет наличие окна по заголовку."""
|
||||
|
||||
self.toolbar.check_toolbar_presence(f"Modal window with '{self.toolbar.title}' is missing")
|
||||
|
||||
def check_button_presence(self, name: str) -> None:
|
||||
"""Проверка наличия кнопки по имени."""
|
||||
"""Проверяет наличие кнопки по имени. Вызывает ошибку, если не найдена."""
|
||||
|
||||
button = self.get_button_by_name(name)
|
||||
if button is None:
|
||||
assert False, f"Button with name '{name}' not found"
|
||||
button.check_presence(f"Button with name '{name}' is missing")
|
||||
|
||||
def check_toolbar_button_presence(self, name: str) -> None:
|
||||
"""Проверка наличия кнопки в панели инструментов."""
|
||||
"""Проверяет наличие кнопки в панели инструментов."""
|
||||
|
||||
self.toolbar.check_button_presence(name)
|
||||
|
||||
def check_toolbar_button_tooltip(self, name: str, tooltip: str) -> None:
|
||||
"""Проверка подсказки кнопки в панели инструментов."""
|
||||
"""Проверяет подсказку у кнопки в панели инструментов."""
|
||||
|
||||
self.toolbar.check_button_tooltip(name, tooltip)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
"""Модуль компонента панели навигации. Содержит класс для работы с элементами навигации."""
|
||||
|
||||
from playwright.sync_api import Page, Locator
|
||||
from tools.logger import get_logger
|
||||
from locators.navigation_panel_locators import NavigationPanelLocators
|
||||
|
|
@ -7,24 +9,54 @@ logger = get_logger("NAVIGATION_PANEL")
|
|||
|
||||
|
||||
class NavigationPanelComponent(BaseComponent):
|
||||
"""Компонент панели навигации."""
|
||||
"""Компонент панели навигации. Предоставляет методы для взаимодействия с ней."""
|
||||
|
||||
def __init__(self, page: Page):
|
||||
"""Инициализирует компонент панели навигации.
|
||||
|
||||
Args:
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
# Действия:
|
||||
def get_item_names(self, locator: str | Locator) -> list[str]:
|
||||
"""Получает тексты всех элементов по указанному локатору."""
|
||||
"""Возвращает тексты всех элементов по указанному локатору.
|
||||
|
||||
Args:
|
||||
locator: Локатор элементов или строка с CSS/XPath.
|
||||
|
||||
Returns:
|
||||
Список текстов элементов.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
return loc.all_inner_texts()
|
||||
|
||||
def click_item(self, locator: str | Locator, item_name: str) -> None:
|
||||
"""Кликает по элементу с указанным текстом."""
|
||||
"""Кликает по элементу с указанным текстом.
|
||||
|
||||
Args:
|
||||
locator: Локатор элемента или строка с CSS/XPath.
|
||||
item_name: Текст элемента для клика.
|
||||
"""
|
||||
|
||||
loc = self.get_locator(locator)
|
||||
loc.get_by_text(item_name).click()
|
||||
|
||||
def click_sub_item(self, locator: str | Locator, sublevel_number: int, item_name: str) -> None:
|
||||
"""Кликает по вложенному элементу с указанным текстом."""
|
||||
"""Кликает по вложенному элементу с указанным текстом.
|
||||
|
||||
Args:
|
||||
locator: Локатор родительского элемента.
|
||||
sublevel_number: Уровень вложенности (1 или 2).
|
||||
item_name: Текст элемента для клика.
|
||||
|
||||
Raises:
|
||||
ValueError: Если уровень вложенности не 1 или 2.
|
||||
"""
|
||||
|
||||
root_locator = self.get_locator(NavigationPanelLocators.NODE_ROOT)
|
||||
children_locator = self.get_locator(NavigationPanelLocators.NODE_CHILDREN)
|
||||
|
||||
|
|
@ -39,7 +71,15 @@ class NavigationPanelComponent(BaseComponent):
|
|||
|
||||
# Проверки:
|
||||
def check_item_visibility(self, locator: str | Locator, item_name: str) -> None:
|
||||
"""Проверяет видимость элемента с указанным текстом."""
|
||||
"""Проверяет видимость элемента с указанным текстом.
|
||||
|
||||
Args:
|
||||
locator: Локатор элемента или строка с CSS/XPath.
|
||||
item_name: Текст элемента для проверки.
|
||||
|
||||
Note:
|
||||
Временная обработка для элементов с текстом 'Шаблоны'.
|
||||
"""
|
||||
|
||||
msg = f"Navigation panel item '{item_name}' is not visible"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +1,37 @@
|
|||
"""Модуль компонента таблицы. Содержит класс для работы с табличными данными."""
|
||||
|
||||
from playwright.sync_api import Page, expect, Locator
|
||||
from tools.logger import get_logger
|
||||
from components.base_component import BaseComponent
|
||||
|
||||
|
||||
logger = get_logger("TABLE")
|
||||
|
||||
|
||||
class TableComponent(BaseComponent):
|
||||
"""Компонент таблицы."""
|
||||
"""Компонент таблицы. Предоставляет методы для работы с табличными данными."""
|
||||
|
||||
def __init__(self, page: Page):
|
||||
"""Инициализирует компонент таблицы.
|
||||
|
||||
Args:
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
# Действия:
|
||||
def get_row_locator(self, table_locator, row_index) -> Locator | None:
|
||||
"""Конструирует локатор для строки с заданным индексом."""
|
||||
def get_row_locator(self, table_locator: str | Locator, row_index: int) -> Locator | None:
|
||||
"""Возвращает локатор строки по индексу.
|
||||
|
||||
Args:
|
||||
table_locator: Локатор таблицы.
|
||||
row_index: Индекс строки.
|
||||
|
||||
Returns:
|
||||
Локатор строки или None, если индекс вне диапазона.
|
||||
"""
|
||||
|
||||
table = self.get_locator(table_locator)
|
||||
|
||||
rows = table.locator("//tbody/tr")
|
||||
|
|
@ -24,9 +42,16 @@ class TableComponent(BaseComponent):
|
|||
return None
|
||||
|
||||
def read(self, locator: str | Locator) -> list[list[str]]:
|
||||
"""Читает данные из таблицы."""
|
||||
table_data = []
|
||||
"""Читает данные таблицы, включая заголовки.
|
||||
|
||||
Args:
|
||||
locator: Локатор таблицы.
|
||||
|
||||
Returns:
|
||||
Двумерный список с данными таблицы.
|
||||
"""
|
||||
|
||||
table_data = []
|
||||
table = self.get_locator(locator)
|
||||
|
||||
# Чтение заголовка таблицы
|
||||
|
|
@ -50,19 +75,35 @@ class TableComponent(BaseComponent):
|
|||
|
||||
# Проверки:
|
||||
def check_first_row_visibility(self, locator: str | Locator) -> None:
|
||||
"""Проверяет видимость первой строки таблицы."""
|
||||
"""Проверяет видимость первой строки таблицы.
|
||||
|
||||
Args:
|
||||
locator: Локатор таблицы.
|
||||
"""
|
||||
|
||||
table = self.get_locator(locator)
|
||||
first_row = table.locator("//tbody/tr").first
|
||||
expect(first_row).to_be_visible(), "The first table row is not visible"
|
||||
|
||||
def check_last_row_visibility(self, locator: str | Locator) -> None:
|
||||
"""Проверяет видимость последней строки таблицы."""
|
||||
"""Проверяет видимость последней строки таблицы.
|
||||
|
||||
Args:
|
||||
locator: Локатор таблицы.
|
||||
"""
|
||||
|
||||
table = self.get_locator(locator)
|
||||
last_row = table.locator("//tbody/tr").last
|
||||
expect(last_row).to_be_visible(), "The last table row is not visible"
|
||||
|
||||
def check_row_highlighting(self, locator: str | Locator, row_index: int) -> None:
|
||||
"""Проверяет подсветку строки при наведении."""
|
||||
"""Проверяет изменение цвета строки при наведении.
|
||||
|
||||
Args:
|
||||
locator: Локатор таблицы.
|
||||
row_index: Индекс проверяемой строки.
|
||||
"""
|
||||
|
||||
table = self.get_locator(locator)
|
||||
row = table.locator("//tbody/tr").nth(row_index)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,11 @@
|
|||
"""Модуль компонента тулбара (панели инструментов).
|
||||
|
||||
Содержит класс ToolbarComponent для работы с элементами тулбара:
|
||||
- Управление кнопками и их подсказками
|
||||
- Проверка видимости элементов
|
||||
- Взаимодействие с панелью инструментов
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page, expect, Locator
|
||||
from tools.logger import get_logger
|
||||
from locators.toolbar_locators import ToolbarLocators
|
||||
|
|
@ -8,12 +16,12 @@ logger = get_logger("TOOLBAR")
|
|||
|
||||
|
||||
class ToolbarComponent(BaseComponent):
|
||||
"""Компонент тулбара (панели инструментов).
|
||||
|
||||
Предоставляет методы для работы с панелью инструментов:
|
||||
- Добавление/управление кнопками
|
||||
- Проверка видимости элементов
|
||||
- Взаимодействие с элементами тулбара
|
||||
|
||||
"""Компонент тулбара. Предоставляет методы для работы с панелью инструментов.
|
||||
|
||||
|
||||
|
||||
|
||||
Args:
|
||||
page (Page): Экземпляр страницы Playwright
|
||||
|
|
@ -21,17 +29,19 @@ class ToolbarComponent(BaseComponent):
|
|||
"""
|
||||
|
||||
def __init__(self, page: Page, title: str):
|
||||
"""Инициализация компонента тулбара."""
|
||||
"""Инициализирует компонент тулбара с указанным заголовком."""
|
||||
|
||||
super().__init__(page)
|
||||
self.title = title
|
||||
self.buttons = []
|
||||
|
||||
def add_title(self, title: str) -> None:
|
||||
"""Устанавливает заголовок тулбара.
|
||||
"""Устанавливает новый заголовок тулбара.
|
||||
|
||||
Args:
|
||||
title (str): Новый заголовок тулбара
|
||||
title (str): Новый заголовок
|
||||
"""
|
||||
|
||||
self.title = title
|
||||
|
||||
def add_button(self, locator: Locator, name: str) -> None:
|
||||
|
|
@ -41,6 +51,7 @@ class ToolbarComponent(BaseComponent):
|
|||
locator (Locator): Локатор кнопки
|
||||
name (str): Уникальное имя кнопки
|
||||
"""
|
||||
|
||||
self.buttons.append(TooltipButton(self.page, locator, name))
|
||||
|
||||
def get_button_by_name(self, name: str) -> TooltipButton | None:
|
||||
|
|
@ -50,8 +61,9 @@ class ToolbarComponent(BaseComponent):
|
|||
name (str): Имя кнопки
|
||||
|
||||
Returns:
|
||||
TooltipButton | None: Экземпляр кнопки или None если не найдена
|
||||
TooltipButton | None: Найденная кнопка или None
|
||||
"""
|
||||
|
||||
for button in self.buttons:
|
||||
if button.name == name:
|
||||
return button
|
||||
|
|
@ -66,6 +78,7 @@ class ToolbarComponent(BaseComponent):
|
|||
Raises:
|
||||
AssertionError: Если кнопка не найдена
|
||||
"""
|
||||
|
||||
button = self.get_button_by_name(name)
|
||||
if button is None:
|
||||
raise AssertionError(f"Unsupported button name {name}")
|
||||
|
|
@ -83,6 +96,7 @@ class ToolbarComponent(BaseComponent):
|
|||
Raises:
|
||||
AssertionError: Если имя кнопки не поддерживается
|
||||
"""
|
||||
|
||||
button = self.get_button_by_name(name)
|
||||
if button is None:
|
||||
raise AssertionError(f"Unsupported button name {name}")
|
||||
|
|
@ -100,6 +114,7 @@ class ToolbarComponent(BaseComponent):
|
|||
Raises:
|
||||
AssertionError: Если имя кнопки не поддерживается
|
||||
"""
|
||||
|
||||
button = self.get_button_by_name(name)
|
||||
if button is None:
|
||||
raise AssertionError(f"Unsupported button name {name}")
|
||||
|
|
@ -111,6 +126,7 @@ class ToolbarComponent(BaseComponent):
|
|||
Args:
|
||||
message (str): Сообщение об ошибке если тулбар не виден
|
||||
"""
|
||||
|
||||
locator = self.get_locator(ToolbarLocators.TITLE).filter(has_text=self.title)
|
||||
expect(locator).to_be_visible(), message
|
||||
|
||||
|
|
@ -123,6 +139,7 @@ class ToolbarComponent(BaseComponent):
|
|||
Raises:
|
||||
AssertionError: Если кнопка не найдена или не видна
|
||||
"""
|
||||
|
||||
button = self.get_button_by_name(name)
|
||||
if button is None:
|
||||
raise AssertionError(f"Unsupported button name {name}")
|
||||
|
|
@ -136,8 +153,9 @@ class ToolbarComponent(BaseComponent):
|
|||
tooltip (str): Ожидаемый текст подсказки
|
||||
|
||||
Raises:
|
||||
AssertionError: Если кнопка не найдена или текст подсказки не совпадает
|
||||
AssertionError: Если текст подсказки не совпадает
|
||||
"""
|
||||
|
||||
button = self.get_button_by_name(name)
|
||||
if button is None:
|
||||
raise AssertionError(f"Unsupported button name {name}")
|
||||
|
|
|
|||
|
|
@ -1,14 +1,20 @@
|
|||
"""Модуль constants содержит настройки и константы приложения.
|
||||
|
||||
Основной класс Constants предоставляет доступ к переменным окружения,
|
||||
используемым для аутентификации и других настроек.
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
class Constants:
|
||||
"""Класс для хранения констант и переменных окружения.
|
||||
"""Хранит константы и переменные окружения.
|
||||
|
||||
Содержит переменные, используемые для аутентификации и других настроек.
|
||||
Получает значения из переменных окружения.
|
||||
|
||||
Получает значения из переменных окружения. Используется для аутентификации.
|
||||
|
||||
Атрибуты:
|
||||
login (str): Логин для аутентификации
|
||||
password (str): Пароль для аутентификации
|
||||
login (str): Логин для аутентификации.
|
||||
password (str): Пароль для аутентификации.
|
||||
"""
|
||||
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -1,8 +1,20 @@
|
|||
"""Модуль environment содержит настройки окружения и URL-адресов.
|
||||
|
||||
Класс Environment предоставляет методы для работы с окружением,
|
||||
токенами и URL-адресами API.
|
||||
"""
|
||||
|
||||
import os
|
||||
from typing import Dict
|
||||
|
||||
class Environment:
|
||||
"""Класс для работы с окружением и URL-адресами."""
|
||||
"""Управление окружением, URL-адресами и токенами.
|
||||
|
||||
Атрибуты класса:
|
||||
TEST (str): Константа для тестового окружения.
|
||||
DEVELOP (str): Константа для dev-окружения.
|
||||
URLS (Dict[str, str]): Словарь URL для разных окружений.
|
||||
"""
|
||||
|
||||
TEST: str = 'test'
|
||||
DEVELOP: str = 'develop'
|
||||
|
|
@ -13,7 +25,8 @@ class Environment:
|
|||
}
|
||||
|
||||
def __init__(self) -> None:
|
||||
"""Инициализация объекта окружения."""
|
||||
"""Инициализирует объект окружения и токены."""
|
||||
|
||||
try:
|
||||
self.env: str = os.getenv('ENV', self.TEST)
|
||||
self.access_token: str = ""
|
||||
|
|
@ -22,7 +35,12 @@ class Environment:
|
|||
self.env: str = self.TEST
|
||||
|
||||
def get_base_url(self) -> str:
|
||||
"""Возвращает базовый URL для текущего окружения."""
|
||||
"""Возвращает базовый URL для текущего окружения.
|
||||
|
||||
Возвращает:
|
||||
str: Базовый URL с путем для теста или без него.
|
||||
"""
|
||||
|
||||
if self.env in self.URLS:
|
||||
if self.env == self.TEST:
|
||||
return self.URLS[self.env] + "e-nms-ui/"
|
||||
|
|
@ -30,17 +48,32 @@ class Environment:
|
|||
raise Exception(f"Unknown value of ENV variable {self.env}")
|
||||
|
||||
def get_request_url(self) -> str:
|
||||
"""Возвращает URL для API-запросов."""
|
||||
"""Возвращает URL для API-запросов.
|
||||
|
||||
Возвращает:
|
||||
str: URL для API-запросов.
|
||||
"""
|
||||
|
||||
if self.env in self.URLS:
|
||||
return self.URLS[self.env]
|
||||
raise Exception(f"Unknown value of ENV variable {self.env}")
|
||||
|
||||
def set_access_token(self, token: str) -> None:
|
||||
"""Устанавливает токен доступа."""
|
||||
"""Устанавливает токен доступа.
|
||||
|
||||
Аргументы:
|
||||
token (str): Токен для установки.
|
||||
"""
|
||||
|
||||
self.token = token
|
||||
|
||||
def get_access_token(self) -> str:
|
||||
"""Возвращает текущий токен доступа."""
|
||||
"""Возвращает текущий токен доступа.
|
||||
|
||||
Возвращает:
|
||||
str: Текущий токен доступа.
|
||||
"""
|
||||
|
||||
return self.token
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
"""Модуль roles_dict содержит словарь соответствия ролей.
|
||||
|
||||
Содержит сопоставление системных названий ролей с их отображаемыми названиями.
|
||||
"""
|
||||
|
||||
# Словарь соответствия системных названий ролей их отображаемым названиям
|
||||
roles_dict = {
|
||||
"administrator": "Администратор",
|
||||
"manager": "Контактное лицо",
|
||||
"manager": "Контактное лицо",
|
||||
"operator": "Оператор",
|
||||
"inform_secur_user": "Специалист информационной безопасности",
|
||||
"user": "Пользователь"
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
# Форматирование кода в соответствии с PEP 8 и Google Python Style Guide
|
||||
|
||||
## Требования к форматированию
|
||||
|
||||
1. **Добавление Docstring**:
|
||||
- Для класса: описание назначения и атрибутов в Google-формате на русском языке
|
||||
- Для методов: описание аргументов, возвращаемых значений и возможных исключений
|
||||
|
||||
2. **Сохранение комментариев**:
|
||||
- Разделительные комментарии (например, `#actions:`, `# assertions:`) остаются без изменений
|
||||
- Закомментированный код сохраняется в оригинальном виде
|
||||
- Технические комментарии в методах не изменяются
|
||||
|
||||
3. **Перевод комментариев**:
|
||||
- Разделительные комментарии переводятся (например, `# Действия:`, `# Проверки:`)
|
||||
- Пояснительные комментарии к логике кода переводятся
|
||||
- Не переводятся:
|
||||
- Технические сообщения в `assert`, `raise` и других системных конструкциях
|
||||
- Закомментированный код
|
||||
- Сообщения в логах и ошибках
|
||||
|
||||
4. **Форматирование кода**:
|
||||
- Соответствие PEP 8 (отступы, пробелы вокруг операторов)
|
||||
- Сохранение исходной структуры кода
|
||||
- Без изменений рабочей логики программы
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
**Добавление Docstring**
|
||||
|
||||
Изменить строго соблюдая требования:
|
||||
1. Добавить недостающие и улучшить имеющиеся docstrings язык русский.
|
||||
2. Сделать docstring более компактными, сохранив всю важную информацию.
|
||||
3. Ограничить в docstring длину строк 79 символами.
|
||||
4. Добавить docstring перед импортами.
|
||||
5. Должна быть пустая строка после каждого docstring.
|
||||
6. Сохранить все текущие комментарии.
|
||||
7. Запрещено изменять код (изменять только docstring).
|
||||
8. Не удалять пустые строки.
|
||||
9. В конце кода должна быть одна пустая строка.
|
||||
|
||||
Вывести полный изменённый код и отчет о выполнении требований
|
||||
|
|
@ -1,12 +1,30 @@
|
|||
"""Модуль base_element содержит базовый класс для работы с элементами страницы.
|
||||
|
||||
Класс BaseElement предоставляет основные методы взаимодействия с элементами
|
||||
и их проверки через Playwright.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page, Locator, expect, TimeoutError
|
||||
from tools.logger import get_logger
|
||||
|
||||
logger = get_logger("BASE_ELEMENT")
|
||||
|
||||
class BaseElement:
|
||||
"""Базовый класс для работы с элементами страницы."""
|
||||
"""Базовый класс для работы с элементами страницы через Playwright.
|
||||
|
||||
Предоставляет основные методы взаимодействия с элементами:
|
||||
клики, получение текста, ожидание и проверки состояния.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page, locator: str | Locator, name: str) -> None:
|
||||
"""Инициализирует базовый элемент страницы.
|
||||
|
||||
Args:
|
||||
page: Экземпляр страницы Playwright
|
||||
locator: Локатор элемента (строка или объект Locator)
|
||||
name: Имя элемента для логирования
|
||||
"""
|
||||
|
||||
self.page = page
|
||||
self.name = name
|
||||
self.locator: Locator
|
||||
|
|
@ -20,32 +38,46 @@ class BaseElement:
|
|||
|
||||
@property
|
||||
def type_of(self) -> str:
|
||||
"""Возвращает тип элемента (для логирования)."""
|
||||
|
||||
return "base element"
|
||||
|
||||
# Действия:
|
||||
def click(self) -> None:
|
||||
"""Выполняет клик по элементу."""
|
||||
|
||||
logger.info(f"Clicking {self.type_of} '{self.name}'")
|
||||
self.locator.click()
|
||||
|
||||
def get_text(self, index: int) -> str:
|
||||
"""Возвращает текст элемента по указанному индексу."""
|
||||
|
||||
logger.info(f"Get text for {self.type_of} '{self.name}'")
|
||||
return self.locator.nth(index).text_content()
|
||||
|
||||
def wait_for_element(self, timeout: int = 12000) -> None:
|
||||
"""Ожидает появление элемента в течение заданного времени."""
|
||||
|
||||
logger.info(f"Wait for {self.type_of} '{self.name}'")
|
||||
self.locator.wait_for(timeout=timeout)
|
||||
|
||||
# Проверки:
|
||||
def check_have_text(self, text: str, msg: str) -> None:
|
||||
"""Проверяет наличие указанного текста в элементе."""
|
||||
|
||||
logger.info(f"Check that {self.type_of} '{self.name}' has text '{text}'")
|
||||
expect(self.locator).to_have_text(text), msg
|
||||
|
||||
def check_presence(self, msg: str) -> None:
|
||||
"""Проверяет видимость элемента на странице."""
|
||||
|
||||
logger.info(f"Check that {self.type_of} '{self.name}' is present")
|
||||
print(self.locator)
|
||||
expect(self.locator).to_be_visible(visible=True, timeout=12000), msg
|
||||
|
||||
def is_present(self, timeout: int = 5000) -> bool:
|
||||
"""Проверяет наличие элемента в течение заданного времени."""
|
||||
|
||||
logger.info(f"Check that {self.type_of} '{self.name}' is present")
|
||||
try:
|
||||
self.locator.wait_for(timeout=timeout)
|
||||
|
|
@ -54,6 +86,8 @@ class BaseElement:
|
|||
return True
|
||||
|
||||
def is_not_present(self, timeout: int = 5000) -> bool:
|
||||
"""Проверяет отсутствие элемента в течение заданного времени."""
|
||||
|
||||
logger.info(f"Check that {self.type_of} '{self.name}' is missing")
|
||||
try:
|
||||
self.locator.wait_for(timeout=timeout)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль button_element содержит класс для работы с кнопками на странице.
|
||||
|
||||
Класс Button наследует базовый функционал BaseElement и предоставляет
|
||||
специфичные методы для работы с элементами типа 'кнопка'.
|
||||
"""
|
||||
|
||||
from tools.logger import get_logger
|
||||
from elements.base_element import BaseElement
|
||||
|
||||
|
|
@ -5,18 +11,20 @@ logger = get_logger("BUTTON")
|
|||
|
||||
|
||||
class Button(BaseElement):
|
||||
"""Класс для работы с элементами типа 'кнопка' на странице.
|
||||
"""Класс для работы с кнопками на странице.
|
||||
|
||||
Наследует функциональность базового элемента и добавляет специфичные для кнопок методы.
|
||||
Наследует функциональность BaseElement и добавляет специфичные
|
||||
для кнопок методы и проверки.
|
||||
"""
|
||||
|
||||
@property
|
||||
def type_of(self) -> str:
|
||||
"""Возвращает тип элемента - 'кнопка'.
|
||||
"""Возвращает тип элемента ('кнопка').
|
||||
|
||||
Returns:
|
||||
Строка с типом элемента.
|
||||
str: Тип элемента - 'кнопка'.
|
||||
"""
|
||||
|
||||
return "button"
|
||||
|
||||
# Действия:
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль checkbox_element содержит класс для работы с чекбоксами.
|
||||
|
||||
Класс Checkbox наследует базовый функционал BaseElement и добавляет
|
||||
специфичные методы для работы с элементами типа 'чекбокс'.
|
||||
"""
|
||||
|
||||
from tools.logger import get_logger
|
||||
from elements.base_element import BaseElement
|
||||
|
||||
|
|
@ -5,28 +11,32 @@ logger = get_logger("CHECKBOX")
|
|||
|
||||
|
||||
class Checkbox(BaseElement):
|
||||
"""Класс для работы с элементами типа 'чекбокс' на странице.
|
||||
"""Класс для работы с чекбоксами на странице.
|
||||
|
||||
Наследует функциональность базового элемента и добавляет специфичные для чекбоксов методы.
|
||||
Наследует функциональность BaseElement и добавляет методы для
|
||||
взаимодействия с чекбоксами и проверки их состояния.
|
||||
"""
|
||||
|
||||
@property
|
||||
def type_of(self) -> str:
|
||||
"""Возвращает тип элемента - 'чекбокс'.
|
||||
"""Возвращает тип элемента ('чекбокс').
|
||||
|
||||
Returns:
|
||||
Строка с типом элемента.
|
||||
str: Тип элемента - 'чекбокс'.
|
||||
"""
|
||||
|
||||
return "checkbox"
|
||||
|
||||
# Действия:
|
||||
def check(self) -> None:
|
||||
"""Устанавливает чекбокс в отмеченное состояние."""
|
||||
"""Отмечает чекбокс (устанавливает галочку)."""
|
||||
|
||||
logger.info(f"Checking checkbox '{self.name}'")
|
||||
self.locator.check()
|
||||
|
||||
def uncheck(self) -> None:
|
||||
"""Снимает отметку с чекбокса."""
|
||||
"""Снимает отметку с чекбокса (убирает галочку)."""
|
||||
|
||||
logger.info(f"Unchecking checkbox '{self.name}'")
|
||||
self.locator.uncheck()
|
||||
|
||||
|
|
@ -35,7 +45,8 @@ class Checkbox(BaseElement):
|
|||
"""Проверяет, отмечен ли чекбокс.
|
||||
|
||||
Returns:
|
||||
True, если чекбокс отмечен, иначе False.
|
||||
bool: True если отмечен, False если нет.
|
||||
"""
|
||||
|
||||
logger.info(f"Checking if checkbox '{self.name}' is checked")
|
||||
return self.locator.is_checked()
|
||||
|
|
|
|||
|
|
@ -1,43 +1,53 @@
|
|||
"""Модуль dropdown_list_element содержит класс для работы с выпадающими списками.
|
||||
|
||||
Класс DropdownList наследует базовый функционал BaseElement и добавляет
|
||||
методы для взаимодействия с выпадающими списками на странице.
|
||||
"""
|
||||
|
||||
from tools.logger import get_logger
|
||||
from elements.base_element import BaseElement
|
||||
|
||||
logger = get_logger("DROPDOWN_LIST")
|
||||
|
||||
class DropdownList(BaseElement):
|
||||
"""Класс для работы с выпадающими списками на странице.
|
||||
"""Класс для работы с выпадающими списками.
|
||||
|
||||
Наследует функциональность базового элемента и добавляет специфичные для dropdown-списков методы.
|
||||
Наследует функциональность BaseElement и добавляет специфичные
|
||||
методы для выбора и проверки элементов списка.
|
||||
"""
|
||||
|
||||
@property
|
||||
def type_of(self) -> str:
|
||||
"""Возвращает тип элемента - 'выпадающий список'.
|
||||
"""Возвращает тип элемента ('выпадающий список').
|
||||
|
||||
Returns:
|
||||
Строка с типом элемента.
|
||||
str: Тип элемента - 'выпадающий список'.
|
||||
"""
|
||||
|
||||
return "dropdown list"
|
||||
|
||||
# Действия:
|
||||
def click_item_with_text(self, text: str) -> None:
|
||||
"""Кликает на элемент списка с указанным текстом.
|
||||
"""Выбирает элемент списка по указанному тексту.
|
||||
|
||||
Args:
|
||||
text: Текст элемента, который нужно выбрать.
|
||||
text (str): Текст элемента для выбора.
|
||||
"""
|
||||
|
||||
logger.info(f'Selecting item with text "{text}" from dropdown "{self.name}"')
|
||||
self.page.get_by_role("listitem").filter(has_text=text).click()
|
||||
|
||||
# Проверки:
|
||||
def check_item_with_text(self, text: str) -> None:
|
||||
"""Проверяет наличие и доступность элемента с указанным текстом.
|
||||
"""Проверяет наличие и доступность элемента списка.
|
||||
|
||||
Args:
|
||||
text: Текст элемента, который нужно проверить.
|
||||
text (str): Текст элемента для проверки.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если элемент отсутствует или недоступен.
|
||||
"""
|
||||
|
||||
logger.info(f'Checking item with text "{text}" in dropdown "{self.name}"')
|
||||
enabled = self.page.get_by_role("listitem").filter(has_text=text).is_enabled()
|
||||
if not enabled:
|
||||
|
|
|
|||
|
|
@ -1,21 +1,29 @@
|
|||
"""Модуль text_element содержит класс для работы с текстовыми элементами.
|
||||
|
||||
Класс Text наследует базовый функционал BaseElement и предоставляет
|
||||
методы для работы с текстовыми элементами на странице.
|
||||
"""
|
||||
|
||||
from tools.logger import get_logger
|
||||
from elements.base_element import BaseElement
|
||||
|
||||
logger = get_logger("TEXT")
|
||||
|
||||
class Text(BaseElement):
|
||||
"""Класс для работы с текстовыми элементами на странице.
|
||||
"""Класс для работы с текстовыми элементами страницы.
|
||||
|
||||
Наследует функциональность базового элемента и добавляет специфичные для текста методы.
|
||||
Наследует функциональность BaseElement и добавляет специфичные
|
||||
методы для взаимодействия с текстовыми элементами.
|
||||
"""
|
||||
|
||||
@property
|
||||
def type_of(self) -> str:
|
||||
"""Возвращает тип элемента - 'текст'.
|
||||
"""Возвращает тип элемента ('текст').
|
||||
|
||||
Returns:
|
||||
Строка с типом элемента.
|
||||
str: Тип элемента - 'текст'.
|
||||
"""
|
||||
|
||||
return "text"
|
||||
|
||||
# Действия:
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль text_input_element содержит класс для работы с текстовыми полями ввода.
|
||||
|
||||
Класс TextInput наследует базовый функционал BaseElement и предоставляет
|
||||
методы для взаимодействия с текстовыми полями ввода на странице.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import expect
|
||||
from tools.logger import get_logger
|
||||
from elements.base_element import BaseElement
|
||||
|
|
@ -6,54 +12,60 @@ logger = get_logger("TEXT_INPUT")
|
|||
|
||||
|
||||
class TextInput(BaseElement):
|
||||
"""Класс для работы с текстовыми полями ввода на странице.
|
||||
"""Класс для работы с текстовыми полями ввода.
|
||||
|
||||
Наследует функциональность базового элемента и добавляет специфичные для текстовых полей методы.
|
||||
Наследует функциональность BaseElement и добавляет методы
|
||||
для ввода, очистки и проверки текстовых полей.
|
||||
"""
|
||||
|
||||
@property
|
||||
def type_of(self) -> str:
|
||||
"""Возвращает тип элемента - 'текстовое поле ввода'.
|
||||
"""Возвращает тип элемента ('текстовое поле ввода').
|
||||
|
||||
Returns:
|
||||
Строка с типом элемента.
|
||||
str: Тип элемента - 'текстовое поле ввода'.
|
||||
"""
|
||||
|
||||
return "text input"
|
||||
|
||||
# Действия:
|
||||
def get_input_value(self) -> str:
|
||||
"""Получает текущее значение текстового поля.
|
||||
"""Возвращает текущее значение поля ввода.
|
||||
|
||||
Returns:
|
||||
Текущее значение поля ввода.
|
||||
str: Текущее значение в поле.
|
||||
"""
|
||||
|
||||
logger.info(f'Getting value from text input "{self.name}"')
|
||||
return self.locator.input_value()
|
||||
|
||||
def input_value(self, value: str) -> None:
|
||||
"""Вводит указанное значение в текстовое поле.
|
||||
"""Вводит указанное значение в поле.
|
||||
|
||||
Args:
|
||||
value: Значение для ввода.
|
||||
value (str): Значение для ввода.
|
||||
"""
|
||||
|
||||
logger.info(f'Inputting value "{value}" to text input "{self.name}"')
|
||||
self.locator.fill(value)
|
||||
|
||||
def clear(self) -> None:
|
||||
"""Очищает содержимое текстового поля."""
|
||||
|
||||
logger.info(f'Clearing text input "{self.name}"')
|
||||
self.locator.press('Control+A')
|
||||
self.locator.press('Backspace')
|
||||
|
||||
# Проверки:
|
||||
def check_empty_input(self, msg: str) -> None:
|
||||
"""Проверяет, что текстовое поле пустое.
|
||||
"""Проверяет, что поле ввода пустое.
|
||||
|
||||
Args:
|
||||
msg: Сообщение об ошибке при неудачной проверке.
|
||||
msg (str): Сообщение об ошибке при неудачной проверке.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если поле не пустое.
|
||||
"""
|
||||
|
||||
logger.info(f'Checking that text input "{self.name}" is empty')
|
||||
expect(self.locator).to_be_empty(), msg
|
||||
|
|
|
|||
|
|
@ -1,33 +1,42 @@
|
|||
"""Модуль tooltip_button_element содержит класс для работы с кнопками с подсказками.
|
||||
|
||||
Класс TooltipButton наследует базовый функционал BaseElement и добавляет
|
||||
методы для проверки всплывающих подсказок у кнопок.
|
||||
"""
|
||||
|
||||
from tools.logger import get_logger
|
||||
from elements.base_element import BaseElement
|
||||
|
||||
logger = get_logger("TOOLTIP_BUTTON")
|
||||
|
||||
class TooltipButton(BaseElement):
|
||||
"""Класс элемента кнопки с всплывающей подсказкой.
|
||||
"""Класс для работы с кнопками, имеющими всплывающие подсказки.
|
||||
|
||||
Наследует функциональность базового элемента и добавляет методы для работы с подсказками.
|
||||
Наследует функциональность BaseElement и добавляет методы
|
||||
для взаимодействия с подсказками кнопок.
|
||||
"""
|
||||
|
||||
@property
|
||||
def type_of(self) -> str:
|
||||
"""Возвращает тип элемента.
|
||||
"""Возвращает тип элемента ('tooltip_button').
|
||||
|
||||
Returns:
|
||||
str: Тип элемента ('tooltip_button')
|
||||
str: Тип элемента - кнопка с подсказкой.
|
||||
"""
|
||||
|
||||
return "tooltip_button"
|
||||
|
||||
def check_tooltip_with_text(self, tooltip_locator: str, expected_text: str) -> None:
|
||||
"""Проверяет текст всплывающей подсказки.
|
||||
"""Проверяет соответствие текста всплывающей подсказки.
|
||||
|
||||
Args:
|
||||
tooltip_locator (str): Локатор элемента подсказки
|
||||
expected_text (str): Ожидаемый текст подсказки
|
||||
tooltip_locator (str): Локатор элемента подсказки.
|
||||
expected_text (str): Ожидаемый текст подсказки.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если текст подсказки не соответствует ожидаемому
|
||||
AssertionError: Если текст подсказки не соответствует ожидаемому.
|
||||
"""
|
||||
|
||||
# Наведение на элемент для отображения подсказки
|
||||
self.locator.hover()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
"""Модуль для работы с Playwright в тестах pytest.
|
||||
"""Модуль pages содержит фикстуры и функции для работы с Playwright.
|
||||
|
||||
Содержит фикстуры и вспомогательные функции для управления браузером.
|
||||
Предоставляет инструменты для управления браузером, контекстами и страницами
|
||||
в тестах pytest, включая настройку параметров запуска.
|
||||
"""
|
||||
|
||||
|
||||
import pytest
|
||||
from playwright.sync_api import Browser, BrowserContext, Page, sync_playwright, Playwright
|
||||
from _pytest.config.argparsing import Parser
|
||||
|
|
@ -10,19 +12,20 @@ from _pytest.fixtures import FixtureRequest
|
|||
|
||||
|
||||
def pytest_addoption(parser: Parser):
|
||||
"""Добавляет пользовательские опции командной строки для настройки браузера.
|
||||
"""Добавляет опции командной строки для настройки браузера.
|
||||
|
||||
Args:
|
||||
parser: Парсер pytest для добавления опций.
|
||||
|
||||
Доступные опции:
|
||||
--bn: Выбор браузера (chrome, remote_chrome или firefox)
|
||||
Опции:
|
||||
--bn: Браузер (chrome, remote_chrome, firefox)
|
||||
--h: Режим headless (True/False)
|
||||
--s: Размер окна в формате {'width': int, 'height': int}
|
||||
--slow: Задержка между действиями (slow_mo)
|
||||
--s: Размер окна {'width': int, 'height': int}
|
||||
--slow: Задержка между действиями (мс)
|
||||
--t: Таймаут по умолчанию (мс)
|
||||
--l: Локаль браузера
|
||||
"""
|
||||
|
||||
parser.addoption('--bn', action='store', default="chrome",
|
||||
help="Choose browser: chrome, remote_chrome or firefox")
|
||||
parser.addoption('--h', action='store', default=False,
|
||||
|
|
@ -48,7 +51,7 @@ def pytest_addoption(parser: Parser):
|
|||
|
||||
@pytest.fixture(scope='class')
|
||||
def browser(request: FixtureRequest) -> Page:
|
||||
"""Фикстура для создания и управления экземпляром браузера.
|
||||
"""Фикстура для управления экземпляром браузера.
|
||||
|
||||
Args:
|
||||
request: Объект запроса pytest для доступа к конфигурации.
|
||||
|
|
@ -57,11 +60,12 @@ def browser(request: FixtureRequest) -> Page:
|
|||
Page: Экземпляр страницы браузера.
|
||||
|
||||
Yields:
|
||||
Page: Экземпляр страницы для использования в тестах.
|
||||
Page: Страница для использования в тестах.
|
||||
|
||||
Note:
|
||||
Автоматически закрывает браузер и контексты после завершения тестов.
|
||||
Автоматически закрывает браузер после тестов.
|
||||
"""
|
||||
|
||||
playwright = sync_playwright().start()
|
||||
|
||||
# Выбор браузера на основе параметра командной строки
|
||||
|
|
@ -96,11 +100,12 @@ def get_firefox_browser(playwright: Playwright, request: FixtureRequest) -> Brow
|
|||
|
||||
Args:
|
||||
playwright: Экземпляр Playwright.
|
||||
request: Объект запроса pytest для доступа к конфигурации.
|
||||
request: Объект запроса pytest.
|
||||
|
||||
Returns:
|
||||
Browser: Экземпляр Firefox браузера.
|
||||
Browser: Экземпляр Firefox.
|
||||
"""
|
||||
|
||||
return playwright.firefox.launch(
|
||||
headless=request.config.getoption("h"),
|
||||
slow_mo=request.config.getoption("slow"),
|
||||
|
|
@ -112,11 +117,12 @@ def get_chrome_browser(playwright: Playwright, request: FixtureRequest) -> Brows
|
|||
|
||||
Args:
|
||||
playwright: Экземпляр Playwright.
|
||||
request: Объект запроса pytest для доступа к конфигурации.
|
||||
request: Объект запроса pytest.
|
||||
|
||||
Returns:
|
||||
Browser: Экземпляр Chrome браузера.
|
||||
Browser: Экземпляр Chrome.
|
||||
"""
|
||||
|
||||
return playwright.chromium.launch(
|
||||
headless=request.config.getoption("h"),
|
||||
slow_mo=request.config.getoption("slow"),
|
||||
|
|
@ -125,15 +131,16 @@ def get_chrome_browser(playwright: Playwright, request: FixtureRequest) -> Brows
|
|||
|
||||
|
||||
def get_remote_chrome(playwright: Playwright, request: FixtureRequest) -> Browser:
|
||||
"""Создает и возвращает экземпляр Chrome браузера для удаленного запуска.
|
||||
"""Создает экземпляр Chrome для удаленного запуска.
|
||||
|
||||
Args:
|
||||
playwright: Экземпляр Playwright.
|
||||
request: Объект запроса pytest для доступа к конфигурации.
|
||||
request: Объект запроса pytest.
|
||||
|
||||
Returns:
|
||||
Browser: Экземпляр Chrome браузера в режиме headless.
|
||||
Browser: Экземпляр Chrome в headless режиме.
|
||||
"""
|
||||
|
||||
return playwright.chromium.launch(
|
||||
headless=True,
|
||||
slow_mo=request.config.getoption("slow")
|
||||
|
|
@ -145,12 +152,13 @@ def get_context(browser: Browser, request: FixtureRequest, start: str) -> Browse
|
|||
|
||||
Args:
|
||||
browser: Экземпляр браузера.
|
||||
request: Объект запроса pytest для доступа к конфигурации.
|
||||
request: Объект запроса pytest.
|
||||
start: Тип запуска ('local' или 'remote').
|
||||
|
||||
Returns:
|
||||
BrowserContext: Настроенный контекст браузера.
|
||||
BrowserContext: Настроенный контекст.
|
||||
"""
|
||||
|
||||
if start == 'local':
|
||||
context = browser.new_context(
|
||||
# no_viewport=True,
|
||||
|
|
@ -179,9 +187,10 @@ def get_context(browser: Browser, request: FixtureRequest, start: str) -> Browse
|
|||
|
||||
@pytest.fixture(scope="function")
|
||||
def return_back(browser: Page):
|
||||
"""Фикстура для возврата на предыдущую страницу в браузере.
|
||||
"""Фикстура для возврата на предыдущую страницу.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы браузера.
|
||||
"""
|
||||
|
||||
browser.go_back()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,18 @@
|
|||
"""Модуль button_locators содержит локаторы для кнопок и элементов интерфейса.
|
||||
|
||||
Класс ButtonLocators хранит XPath и CSS локаторы для взаимодействия
|
||||
с кнопками и всплывающими подсказками в тестах.
|
||||
"""
|
||||
|
||||
class ButtonLocators:
|
||||
"""Класс для хранения локаторов кнопок и связанных элементов.
|
||||
|
||||
Содержит локаторы в формате XPath и CSS для поиска элементов:
|
||||
- Кнопка обновления лицензии
|
||||
- Всплывающая подсказка
|
||||
- Кнопка удаления сессии
|
||||
"""
|
||||
|
||||
BUTTON_LICENSE_UPDATE = "//div[@class='scrollarea__footer']//button"
|
||||
TOOLTIP = "//div[contains(@class,'v-tooltip__content menuable__content__active')]"
|
||||
BUTTON_DELETE_SESSION = "button.v-btn--icon svg[fill='#4caf50']"
|
||||
|
|
|
|||
|
|
@ -1,12 +1,19 @@
|
|||
"""Модуль confirm_locators содержит локаторы элементов диалогов подтверждения.
|
||||
|
||||
Класс ConfirmLocators предоставляет XPath локаторы для взаимодействия
|
||||
с диалоговыми окнами подтверждения действий в тестах.
|
||||
"""
|
||||
|
||||
class ConfirmLocators:
|
||||
"""Локаторы элементов диалогов подтверждения.
|
||||
|
||||
Атрибуты:
|
||||
CONFIRM (str): XPath локатор активного диалогового окна.
|
||||
TITLE (str): XPath локатор заголовка диалогового окна.
|
||||
BUTTON_CLOSE (str): XPath локатор кнопки закрытия диалога.
|
||||
TEXT (str): XPath локатор текстового содержимого диалога (формируется динамически).
|
||||
Содержит XPath локаторы для:
|
||||
CONFIRM (str): активного диалогового окна.
|
||||
TITLE (str): заголовка диалогового окна.
|
||||
BUTTON_CLOSE (str): кнопки закрытия диалога.
|
||||
TEXT (str): текстового содержимого диалога (формируется динамически).
|
||||
"""
|
||||
|
||||
CONFIRM = "//div[contains(@class, 'v-dialog--active')]"
|
||||
TITLE = "//div[@class='v-card__title']/h3"
|
||||
BUTTON_CLOSE = "//div[@class='vuedl-layout__closeBtn']"
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
"""Модуль event_panel_locators содержит локаторы элементов панели событий.
|
||||
|
||||
Класс EventPanelLocators предоставляет XPath локаторы для взаимодействия
|
||||
с элементами панели событий в тестах.
|
||||
"""
|
||||
|
||||
class EventPanelLocators:
|
||||
"""Локаторы элементов панели событий.
|
||||
|
||||
Атрибуты:
|
||||
BUTTONS_BLOCK (str): XPath локатор блока кнопок в панели инструментов.
|
||||
Находится во втором блоке элементов toolbar'а внутри контентной области.
|
||||
|
||||
Содержит XPath локаторы для:
|
||||
BUTTONS_BLOCK (str): блока кнопок в панели инструментов
|
||||
"""
|
||||
|
||||
BUTTONS_BLOCK = "//nav/div[@class='v-toolbar__content']/div[@class='v-toolbar__items'][2]"
|
||||
|
|
|
|||
|
|
@ -1,12 +1,19 @@
|
|||
"""Модуль input_locators содержит локаторы полей ввода на странице.
|
||||
|
||||
Класс InputLocators предоставляет XPath локаторы для взаимодействия
|
||||
с текстовыми полями ввода в тестах.
|
||||
"""
|
||||
|
||||
class InputLocators:
|
||||
"""Локаторы для полей ввода на странице.
|
||||
|
||||
Атрибуты:
|
||||
LICENSE_ID_UPDATE (str): XPath локатор текстового поля для ввода/обновления
|
||||
идентификатора лицензии, расположенного в подвале страницы.
|
||||
Состоит из нескольких частей:
|
||||
- Блок подвала (scrollarea__footer)
|
||||
- Контейнер поля ввода (v-input__control)
|
||||
- Непосредственно текстовое поле (textarea)
|
||||
|
||||
Содержит XPath локаторы для:
|
||||
LICENSE_ID_UPDATE (str): поля ввода идентификатора лицензии в подвале
|
||||
|
||||
|
||||
|
||||
|
||||
"""
|
||||
|
||||
LICENSE_ID_UPDATE = "//div[@class='scrollarea__footer']//div[@class='v-input__control']//textarea"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
"""Модуль json_container_locators содержит локаторы контейнеров JSON-данных.
|
||||
|
||||
Класс JsonContainerLocators предоставляет XPath локаторы для работы
|
||||
с контейнерами JSON-данных на странице.
|
||||
"""
|
||||
|
||||
class JsonContainerLocators:
|
||||
"""Локаторы для контейнеров JSON-данных на странице.
|
||||
|
||||
Атрибуты:
|
||||
CONTAINER (str): XPath локатор основного контейнера JSON-данных.
|
||||
Ищет div с классом, содержащим 'jv-container'.
|
||||
SCROLL_CONTAINER (str): XPath локатор прокручиваемой области контейнера.
|
||||
Ищет div с классом, содержащим 'scrollarea__body'.
|
||||
Содержит XPath локаторы для:
|
||||
CONTAINER (str): основного контейнера JSON-данных
|
||||
SCROLL_CONTAINER (str): прокручиваемой области контейнера
|
||||
"""
|
||||
|
||||
CONTAINER = "//div[contains(@class,'jv-container')]"
|
||||
SCROLL_CONTAINER = "//div[contains(@class, 'scrollarea__body')]"
|
||||
|
|
|
|||
|
|
@ -1,16 +1,23 @@
|
|||
"""Модуль modal_window_locators содержит локаторы элементов модальных окон.
|
||||
|
||||
Класс ModalWindowLocators предоставляет XPath локаторы для взаимодействия
|
||||
с элементами модальных окон в тестах.
|
||||
"""
|
||||
|
||||
class ModalWindowLocators:
|
||||
"""Локаторы для элементов модальных окон.
|
||||
|
||||
Атрибуты:
|
||||
MODAL_WINDOW (str): XPath локатор активного модального окна.
|
||||
INPUT_FORM_USER_DATA (str): XPath локатор формы для ввода пользовательских данных.
|
||||
TEXT_FIELD_INPUT_FORM_USER_DATA (str): Относительный XPath текстового поля ввода
|
||||
внутри формы пользовательских данных.
|
||||
ROLES_FIELD_INPUT_FORM_USER_DATA (str): Относительный XPath поля выбора ролей
|
||||
внутри формы пользовательских данных.
|
||||
ROLES_MENU_INPUT_FORM_USER_DATA (str): XPath локатор активного меню выбора ролей.
|
||||
LABEL_INPUT_FORM_USER_DATA (str): XPath локатор метки поля ввода в форме.
|
||||
Содержит XPath локаторы для:
|
||||
MODAL_WINDOW (str): активного модального окна
|
||||
INPUT_FORM_USER_DATA (str): формы ввода пользовательских данных
|
||||
TEXT_FIELD_INPUT_FORM_USER_DATA (str): текстового поля ввода
|
||||
|
||||
ROLES_FIELD_INPUT_FORM_USER_DATA (str): поля выбора ролей
|
||||
|
||||
ROLES_MENU_INPUT_FORM_USER_DATA (str): меню выбора ролей
|
||||
LABEL_INPUT_FORM_USER_DATA (str): метки поля ввода
|
||||
"""
|
||||
|
||||
MODAL_WINDOW = "//div[contains(@class, 'v-dialog--active')]"
|
||||
|
||||
INPUT_FORM_USER_DATA = "//form[@class='v-form']"
|
||||
|
|
|
|||
|
|
@ -1,17 +1,19 @@
|
|||
"""Модуль navigation_panel_locators содержит локаторы навигационной панели.
|
||||
|
||||
Класс NavigationPanelLocators предоставляет XPath локаторы для работы
|
||||
с элементами навигационной панели в тестах.
|
||||
"""
|
||||
|
||||
class NavigationPanelLocators:
|
||||
"""Локаторы элементов навигационной панели.
|
||||
|
||||
Атрибуты:
|
||||
PANEL_MAIN (str): XPath локатор основной панели навигации.
|
||||
Ищет элемент ul с классом, содержащим 'v-expansion-panel'.
|
||||
PANEL_SCROLL_CONTAINER (str): XPath локатор контейнера с прокруткой,
|
||||
содержащего навигационную панель. Ищет div с классом 'scrollarea__body',
|
||||
внутри которого находится панель навигации.
|
||||
NODE_ROOT (str): XPath локатор корневого узла дерева навигации.
|
||||
Ищет div с классом, содержащим 'v-treeview-node__root'.
|
||||
NODE_CHILDREN (str): XPath локатор дочерних элементов узла дерева.
|
||||
Ищет div с классом, содержащим 'v-treeview-node__children'.
|
||||
Содержит XPath локаторы для:
|
||||
PANEL_MAIN (str): основной панели навигации
|
||||
PANEL_SCROLL_CONTAINER (str): контейнера с прокруткой
|
||||
NODE_ROOT (str): корневого узла дерева
|
||||
NODE_CHILDREN (str): дочерних элементов узла
|
||||
"""
|
||||
|
||||
PANEL_MAIN = "//ul[contains(@class, 'v-expansion-panel')]"
|
||||
PANEL_SCROLL_CONTAINER = "//div[contains(@class, 'scrollarea__body') and .//ul[contains(@class, 'v-expansion-panel')]]"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,16 @@
|
|||
"""Модуль table_locators содержит локаторы табличных элементов.
|
||||
|
||||
Класс TableLocators предоставляет XPath локаторы для работы
|
||||
с таблицами в рабочей области приложения.
|
||||
"""
|
||||
|
||||
class TableLocators:
|
||||
"""Локаторы для табличных элементов в рабочей области.
|
||||
|
||||
Атрибуты:
|
||||
TABLE_WORK_AREA (str): XPath локатор основной таблицы в рабочей области.
|
||||
Ищет элемент table, находящийся по пути:
|
||||
scrollarea__body -> div -> div -> div -> table
|
||||
TABLE_SCROLL_CONTAINER (str): XPath локатор контейнера с прокруткой таблицы.
|
||||
Ищет tbody внутри div с классом scrollarea__body,
|
||||
содержащего таблицу с классом scrolltable__container.
|
||||
Содержит XPath локаторы для:
|
||||
TABLE_WORK_AREA (str): основной таблицы в рабочей области
|
||||
TABLE_SCROLL_CONTAINER (str): контейнера с прокруткой таблицы
|
||||
"""
|
||||
|
||||
TABLE_WORK_AREA = "//div[@class='scrollarea__body']/div/div/div/table"
|
||||
TABLE_SCROLL_CONTAINER = "//div[contains(@class, 'scrollarea__body') and .//table[@class='scrolltable__container']]//tbody"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
"""Модуль text_locators содержит локаторы текстовых элементов.
|
||||
|
||||
Класс TextLocators предоставляет XPath локаторы для работы
|
||||
с текстовыми элементами на страницах приложения.
|
||||
"""
|
||||
|
||||
class TextLocators:
|
||||
"""Локаторы для текстовых элементов на странице.
|
||||
|
||||
Атрибуты:
|
||||
TITLE_LICENSE_INPUT_FORM (str): XPath локатор заголовка формы ввода лицензии.
|
||||
Ищет span с классом 'title'.
|
||||
LICENSE_ID (str): XPath локатор отображаемого идентификатора лицензии.
|
||||
Ищет span с классами 'title' и 'text_select' (выделяемый текст).
|
||||
Содержит XPath локаторы для:
|
||||
TITLE_LICENSE_INPUT_FORM (str): заголовка формы ввода лицензии
|
||||
LICENSE_ID (str): отображаемого ID лицензии (выделяемый текст)
|
||||
"""
|
||||
|
||||
TITLE_LICENSE_INPUT_FORM = "//span[@class='title']"
|
||||
LICENSE_ID = "//span[@class='title text_select']"
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
class ToolbarLocators:
|
||||
"""Локаторы элементов тулбара (панели инструментов).
|
||||
"""Модуль toolbar_locators содержит локаторы элементов панели инструментов.
|
||||
|
||||
Атрибуты:
|
||||
TITLE (str): XPath локатор заголовка тулбара.
|
||||
Находится в навигационной панели (nav) внутри элемента с классом,
|
||||
содержащим 'v-toolbar__title'.
|
||||
|
||||
TOOLTIP (str): XPath локатор активного всплывающего подсказывающего элемента.
|
||||
Ищет div с классами, содержащими:
|
||||
- 'v-tooltip__content' (основа тултипа)
|
||||
- 'menuable__content__active' (показанное состояние)
|
||||
Класс ToolbarLocators предоставляет XPath локаторы для взаимодействия
|
||||
с элементами тулбара и всплывающими подсказками.
|
||||
"""
|
||||
|
||||
class ToolbarLocators:
|
||||
"""Локаторы элементов панели инструментов (тулбара).
|
||||
|
||||
Содержит XPath локаторы для:
|
||||
TITLE (str): заголовка тулбара
|
||||
TOOLTIP (str): активной всплывающей подсказки
|
||||
"""
|
||||
|
||||
TITLE = "//nav//div[contains(@class, 'v-toolbar__title')]"
|
||||
TOOLTIP = "//div[contains(@class,'v-tooltip__content menuable__content__active')]"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль modal_add_user содержит класс для работы с модальным окном добавления пользователя.
|
||||
|
||||
Класс AddUserModalWindow наследует базовый функционал ModalWindowComponent
|
||||
и реализует специфичные методы для работы с формами добавления пользователей.
|
||||
"""
|
||||
|
||||
import re
|
||||
from playwright.sync_api import Page
|
||||
from tools.logger import get_logger
|
||||
|
|
@ -15,20 +21,18 @@ logger = get_logger("ADD_USER_MODAL_WINDOW")
|
|||
|
||||
|
||||
class AddUserModalWindow(ModalWindowComponent):
|
||||
"""Класс модального окна добавления нового пользователя.
|
||||
"""Модальное окно добавления нового пользователя.
|
||||
|
||||
Наследует функциональность базового модального окна и добавляет специфичные элементы:
|
||||
- Поля ввода данных пользователя
|
||||
- Чекбоксы
|
||||
Наследует ModalWindowComponent и добавляет элементы формы:
|
||||
- Поля ввода (имя, пароль, email и др.)
|
||||
- Чекбоксы (Active Directory, Push-уведомления)
|
||||
- Выпадающий список ролей
|
||||
- Кнопки действий
|
||||
|
||||
Args:
|
||||
page (Page): Экземпляр страницы Playwright
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page):
|
||||
"""Инициализация компонентов модального окна добавления пользователя."""
|
||||
"""Инициализирует элементы формы добавления пользователя."""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
# Локаторы элементов формы
|
||||
|
|
@ -117,19 +121,9 @@ class AddUserModalWindow(ModalWindowComponent):
|
|||
"""Заполняет форму и добавляет нового пользователя.
|
||||
|
||||
Args:
|
||||
user_data (dict): Словарь с данными пользователя. Может содержать ключи:
|
||||
- active_directory_checked (bool): Состояние чекбокса Active Directory
|
||||
- name (str): Имя пользователя
|
||||
- role (str): Роль пользователя
|
||||
- password (str): Пароль пользователя
|
||||
- commentary (str): Комментарий
|
||||
- email (str): Email
|
||||
- phone_number (str): Номер телефона
|
||||
- push_notification_checked (bool): Состояние чекбокса Push-уведомлений
|
||||
|
||||
Raises:
|
||||
AssertionError: Если подтверждающее окно не отображается
|
||||
user_data (dict): Данные пользователя (имя, роль, пароль и др.)
|
||||
"""
|
||||
|
||||
fields = user_data.keys()
|
||||
|
||||
if "active_directory_checked" in fields:
|
||||
|
|
@ -187,20 +181,19 @@ class AddUserModalWindow(ModalWindowComponent):
|
|||
self.new_user_confirm.click_allow_button()
|
||||
|
||||
def close_window(self):
|
||||
"""Закрывает модальное окно с помощью кнопки 'Закрыть'."""
|
||||
"""Закрывает модальное окно через кнопку 'Закрыть'."""
|
||||
|
||||
close_button = self.get_button_by_name("close")
|
||||
close_button.click()
|
||||
|
||||
def close_window_by_toolbar_button(self):
|
||||
"""Закрывает модальное окно с помощью кнопки закрытия в тулбаре."""
|
||||
"""Закрывает модальное окно через кнопку в тулбаре."""
|
||||
|
||||
self.click_toolbar_close_button()
|
||||
|
||||
def check_content(self):
|
||||
"""Проверяет наличие и корректность всех элементов модального окна.
|
||||
"""Проверяет наличие и корректность всех элементов формы."""
|
||||
|
||||
Raises:
|
||||
AssertionError: Если какой-либо элемент отсутствует или содержит некорректные данные
|
||||
"""
|
||||
self.check_by_window_title()
|
||||
|
||||
self.check_toolbar_button_presence("close")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль modal_edit_user содержит класс для работы с окном редактирования пользователя.
|
||||
|
||||
Класс EditUserModalWindow наследует базовый функционал ModalWindowComponent
|
||||
и реализует методы для редактирования данных пользователя.
|
||||
"""
|
||||
|
||||
import re
|
||||
from playwright.sync_api import Page
|
||||
from tools.logger import get_logger
|
||||
|
|
@ -13,21 +19,18 @@ logger = get_logger("EDIT_USER_MODAL_WINDOW")
|
|||
|
||||
|
||||
class EditUserModalWindow(ModalWindowComponent):
|
||||
"""Класс модального окна редактирования пользователя.
|
||||
"""Модальное окно редактирования пользователя.
|
||||
|
||||
Наследует функциональность базового модального окна и добавляет:
|
||||
- Поля редактирования данных пользователя
|
||||
Наследует ModalWindowComponent и добавляет:
|
||||
- Поля редактирования данных
|
||||
- Чекбоксы настроек
|
||||
- Выпадающий список ролей
|
||||
- Кнопки действий (Сохранить, Удалить, Сбросить пароль)
|
||||
|
||||
Args:
|
||||
page (Page): Экземпляр страницы Playwright
|
||||
user_name (str): Имя редактируемого пользователя (используется в заголовке)
|
||||
- Кнопки действий (Сохранить, Удалить и др.)
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page, user_name: str):
|
||||
"""Инициализация компонентов модального окна редактирования пользователя."""
|
||||
"""Инициализирует элементы формы редактирования пользователя."""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
# Локаторы элементов формы
|
||||
|
|
@ -104,20 +107,19 @@ class EditUserModalWindow(ModalWindowComponent):
|
|||
self.delete_user_confirm = ConfirmComponent(page, " Отмена ", " Удалить ")
|
||||
|
||||
def close_window(self):
|
||||
"""Закрывает модальное окно с помощью кнопки 'Закрыть'."""
|
||||
"""Закрывает окно через кнопку 'Закрыть'."""
|
||||
|
||||
close_button = self.get_button_by_name("close")
|
||||
close_button.click()
|
||||
|
||||
def close_window_by_toolbar_button(self):
|
||||
"""Закрывает модальное окно с помощью кнопки закрытия в тулбаре."""
|
||||
"""Закрывает окно через кнопку в тулбаре."""
|
||||
|
||||
self.click_toolbar_close_button()
|
||||
|
||||
def delete_user(self):
|
||||
"""Удаляет пользователя с подтверждением действия.
|
||||
"""Удаляет пользователя с подтверждением."""
|
||||
|
||||
Raises:
|
||||
AssertionError: Если окно подтверждения не отображается
|
||||
"""
|
||||
delete_button = self.get_button_by_name("delete")
|
||||
delete_button.click()
|
||||
|
||||
|
|
@ -132,14 +134,9 @@ class EditUserModalWindow(ModalWindowComponent):
|
|||
"""Редактирует данные пользователя.
|
||||
|
||||
Args:
|
||||
user_data (dict): Словарь с обновляемыми данными пользователя. Может содержать:
|
||||
- name (str): Имя пользователя
|
||||
- role (str): Роль пользователя
|
||||
- commentary (str): Комментарий
|
||||
- email (str): Email
|
||||
- phone_number (str): Номер телефона
|
||||
- push_notification_checked (bool): Состояние чекбокса уведомлений
|
||||
user_data (dict): Данные для обновления (имя, роль и др.)
|
||||
"""
|
||||
|
||||
fields = user_data.keys()
|
||||
|
||||
if "name" in fields:
|
||||
|
|
@ -185,19 +182,18 @@ class EditUserModalWindow(ModalWindowComponent):
|
|||
|
||||
def reset_password(self):
|
||||
"""Инициирует сброс пароля пользователя."""
|
||||
|
||||
reset_password_button = self.get_button_by_name("reset_password")
|
||||
reset_password_button.click()
|
||||
|
||||
def check_content(self, user_name, role):
|
||||
"""Проверяет наличие и корректность всех элементов окна.
|
||||
"""Проверяет наличие и корректность элементов окна.
|
||||
|
||||
Args:
|
||||
user_name (str): Ожидаемое имя пользователя
|
||||
role (str): Ожидаемая роль пользователя
|
||||
|
||||
Raises:
|
||||
AssertionError: Если какой-либо элемент отсутствует или содержит некорректные данные
|
||||
"""
|
||||
|
||||
self.check_by_window_title()
|
||||
self.check_toolbar_button_presence("close")
|
||||
self.check_toolbar_button_tooltip("close", "Закрыть")
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
"""Базовый класс страницы для работы с Playwright."""
|
||||
"""Модуль base_page содержит базовый класс для работы со страницами.
|
||||
|
||||
Класс BasePage предоставляет общие методы для взаимодействия
|
||||
со страницами через Playwright и выполнения API-запросов.
|
||||
"""
|
||||
|
||||
import json
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
|
@ -10,28 +14,56 @@ logger = get_logger("BASE_PAGE")
|
|||
|
||||
|
||||
class BasePage:
|
||||
"""Базовый класс для работы со страницами через Playwright."""
|
||||
"""Базовый класс для работы со страницами через Playwright.
|
||||
|
||||
Содержит общие методы для:
|
||||
- Навигации по страницам
|
||||
- Выполнения API-запросов
|
||||
- Проверок состояния страницы
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page) -> None:
|
||||
"""Инициализирует базовую страницу.
|
||||
|
||||
Args:
|
||||
page: Экземпляр страницы Playwright
|
||||
"""
|
||||
|
||||
self.page = page
|
||||
|
||||
# Действия:
|
||||
def current_url(self) -> str:
|
||||
"""Возвращает текущий URL страницы."""
|
||||
|
||||
return self.page.url
|
||||
|
||||
def open(self, uri: str) -> Optional[Response]:
|
||||
"""Открывает указанный URI на базовом URL."""
|
||||
|
||||
return self.page.goto(f"{host.get_base_url()}{uri}", wait_until='domcontentloaded')
|
||||
|
||||
def page_reload(self) -> None:
|
||||
"""Перезагружает текущую страницу."""
|
||||
|
||||
self.page.reload()
|
||||
|
||||
def wait_for_timeout(self, timeout: int) -> None:
|
||||
"""Ожидает указанное количество миллисекунд."""
|
||||
|
||||
self.page.wait_for_timeout(timeout)
|
||||
|
||||
def get_api_request_context(self) -> APIRequestContext:
|
||||
"""Возвращает контекст для выполнения API-запросов."""
|
||||
|
||||
return self.page.context.request
|
||||
|
||||
def send_get_api_request(self, uri: str) -> Response:
|
||||
"""Отправляет GET-запрос к API.
|
||||
|
||||
Args:
|
||||
uri: URI для запроса
|
||||
"""
|
||||
|
||||
api_request_context = self.get_api_request_context()
|
||||
token = host.get_access_token()
|
||||
headers = {"Accept": "application/json", "Authorization": f"Bearer {token}"}
|
||||
|
|
@ -42,6 +74,13 @@ class BasePage:
|
|||
return response
|
||||
|
||||
def send_post_api_request(self, uri: str, payload: Dict[str, Any]) -> Response:
|
||||
"""Отправляет POST-запрос к API.
|
||||
|
||||
Args:
|
||||
uri: URI для запроса
|
||||
payload: Тело запроса
|
||||
"""
|
||||
|
||||
api_request_context = self.get_api_request_context()
|
||||
token = host.get_access_token()
|
||||
headers = {"Accept": "application/json", "Authorization": f"Bearer {token}"}
|
||||
|
|
@ -53,6 +92,12 @@ class BasePage:
|
|||
return response
|
||||
|
||||
def get_response_body(self, response: Response) -> Optional[Dict[str, Any]]:
|
||||
"""Возвращает тело ответа в формате JSON.
|
||||
|
||||
Args:
|
||||
response: Объект ответа
|
||||
"""
|
||||
|
||||
try:
|
||||
response_body = response.json()
|
||||
except json.JSONDecodeError:
|
||||
|
|
@ -62,15 +107,38 @@ class BasePage:
|
|||
|
||||
# Проверки:
|
||||
def check_URL(self, uri: str, msg: str) -> None:
|
||||
"""Проверяет соответствие текущего URL ожидаемому.
|
||||
|
||||
Args:
|
||||
uri: Ожидаемый URI
|
||||
msg: Сообщение об ошибке
|
||||
"""
|
||||
|
||||
expect(self.page).to_have_url(
|
||||
f"{host.get_base_url()}{uri}",
|
||||
timeout=60000
|
||||
), msg
|
||||
|
||||
def check_equals(self, actual: Any, expected: Any, msg: str) -> None:
|
||||
"""Проверяет равенство фактического и ожидаемого значений.
|
||||
|
||||
Args:
|
||||
actual: Фактическое значение
|
||||
expected: Ожидаемое значение
|
||||
msg: Сообщение об ошибке
|
||||
"""
|
||||
|
||||
assert actual == expected, msg
|
||||
|
||||
def check_lists_equals(self, actual: List[Any], expected: List[Any], msg: str) -> None:
|
||||
"""Рекурсивно проверяет равенство двух списков.
|
||||
|
||||
Args:
|
||||
actual: Фактический список
|
||||
expected: Ожидаемый список
|
||||
msg: Сообщение об ошибке
|
||||
"""
|
||||
|
||||
def compare_lists(list1: List[Any], list2: List[Any]) -> bool:
|
||||
if len(list1) != len(list2):
|
||||
return False
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль license_tab содержит класс для работы с вкладкой 'Лицензии'.
|
||||
|
||||
Класс LicenseTab наследует BasePage и реализует методы для взаимодействия
|
||||
с элементами вкладки лицензий и проверки их состояния.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from locators.text_locators import TextLocators
|
||||
from locators.input_locators import InputLocators
|
||||
|
|
@ -14,23 +20,19 @@ from pages.base_page import BasePage
|
|||
class LicenseTab(BasePage):
|
||||
"""Класс для работы с вкладкой 'Лицензии'.
|
||||
|
||||
Атрибуты:
|
||||
page (Page): Экземпляр страницы Playwright.
|
||||
toolbar (ToolbarComponent): Компонент панели инструментов.
|
||||
json_container (JsonContainerComponent): Компонент контейнера с JSON-данными.
|
||||
input_form_title (Text): Заголовок формы ввода.
|
||||
license_id (Text): Текстовый элемент с идентификатором лицензии.
|
||||
license_id_input (TextInput): Поле ввода идентификатора лицензии.
|
||||
update_button (Button): Кнопка обновления лицензии.
|
||||
error_alert (AlertComponent): Компонент алерта с ошибкой.
|
||||
Содержит методы для:
|
||||
- Взаимодействия с формой ввода лицензии
|
||||
- Проверки содержимого JSON-контейнера
|
||||
- Работы с элементами управления
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page) -> None:
|
||||
"""Инициализирует элементы вкладки 'Лицензии'.
|
||||
|
||||
Args:
|
||||
page: Экземпляр страницы Playwright.
|
||||
page: Экземпляр страницы Playwright
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
self.toolbar = ToolbarComponent(page, "Лицензии")
|
||||
|
|
@ -45,37 +47,42 @@ class LicenseTab(BasePage):
|
|||
|
||||
# Действия:
|
||||
def fill_license_input_form(self, value: str) -> None:
|
||||
"""Заполняет форму ввода идентификатора лицензии и нажимает кнопку обновления.
|
||||
"""Заполняет форму ввода лицензии указанным значением.
|
||||
|
||||
Args:
|
||||
value: Значение для ввода в поле идентификатора лицензии.
|
||||
value: Значение для ввода
|
||||
"""
|
||||
|
||||
self.license_id_input.clear()
|
||||
self.license_id_input.input_value(value)
|
||||
self.update_button.click()
|
||||
|
||||
def scroll_json_container_up(self) -> None:
|
||||
"""Прокручивает JSON-контейнер вверх."""
|
||||
|
||||
loc = self.page.locator(JsonContainerLocators.SCROLL_CONTAINER).first
|
||||
self.json_container.scroll_up(loc)
|
||||
|
||||
def scroll_json_container_down(self) -> None:
|
||||
"""Прокручивает JSON-контейнер вниз."""
|
||||
|
||||
loc = self.page.locator(JsonContainerLocators.SCROLL_CONTAINER).first
|
||||
self.json_container.scroll_down(loc)
|
||||
|
||||
# Проверки:
|
||||
def check_json_container_verticall_scrolling(self) -> bool:
|
||||
"""Проверяет возможность вертикальной прокрутки JSON-контейнера.
|
||||
"""Проверяет возможность вертикальной прокрутки контейнера.
|
||||
|
||||
Returns:
|
||||
bool: True если контейнер можно прокручивать, иначе False.
|
||||
bool: Доступность прокрутки
|
||||
"""
|
||||
|
||||
loc = self.page.locator(JsonContainerLocators.SCROLL_CONTAINER).first
|
||||
return self.json_container.is_scrollable_vertically(loc)
|
||||
|
||||
def check_content(self) -> None:
|
||||
"""Проверяет наличие всех основных элементов на вкладке."""
|
||||
"""Проверяет наличие всех основных элементов вкладки."""
|
||||
|
||||
self.should_be_toolbar()
|
||||
self.should_be_json_container()
|
||||
self.should_be_input_form_title()
|
||||
|
|
@ -83,27 +90,31 @@ class LicenseTab(BasePage):
|
|||
self.should_be_update_button()
|
||||
|
||||
def should_be_error_alert_window_with_text(self, text: str) -> None:
|
||||
"""Проверяет наличие и отсутствие алерта с указанным текстом.
|
||||
"""Проверяет наличие/отсутствие алерта с указанным текстом.
|
||||
|
||||
Args:
|
||||
text: Текст для проверки в алерте.
|
||||
text: Текст для проверки
|
||||
"""
|
||||
|
||||
self.error_alert.check_alert_presence(text)
|
||||
self.error_alert.check_alert_absence(text)
|
||||
|
||||
def should_be_toolbar(self) -> None:
|
||||
"""Проверяет наличие панели инструментов."""
|
||||
|
||||
self.toolbar.check_toolbar_presence("Toolbar is missing")
|
||||
|
||||
def should_be_json_container(self) -> None:
|
||||
"""Проверяет наличие JSON-контейнера с информацией о лицензии."""
|
||||
"""Проверяет наличие JSON-контейнера."""
|
||||
|
||||
self.json_container.check_presence(
|
||||
JsonContainerLocators.CONTAINER,
|
||||
"Json container with license info is missing"
|
||||
)
|
||||
|
||||
def should_be_input_form_title(self) -> None:
|
||||
"""Проверяет заголовок формы ввода и соответствие ID лицензии."""
|
||||
"""Проверяет заголовок формы и соответствие ID лицензии."""
|
||||
|
||||
self.input_form_title.check_have_text(
|
||||
"Идентификатор:",
|
||||
"Input lisence id form title 'Идентификатор:' is missing"
|
||||
|
|
@ -122,11 +133,13 @@ class LicenseTab(BasePage):
|
|||
)
|
||||
|
||||
def should_be_empty_input_form(self) -> None:
|
||||
"""Проверяет, что форма ввода идентификатора лицензии пуста."""
|
||||
"""Проверяет пустоту формы ввода лицензии."""
|
||||
|
||||
self.license_id_input.check_empty_input("Input lisence id form is missing or not empty")
|
||||
|
||||
def should_be_update_button(self) -> None:
|
||||
"""Проверяет наличие кнопки обновления лицензии с правильным текстом."""
|
||||
"""Проверяет наличие кнопки обновления лицензии."""
|
||||
|
||||
button_text = "Обновить лицензию"
|
||||
self.update_button.check_have_text(
|
||||
button_text,
|
||||
|
|
@ -134,7 +147,8 @@ class LicenseTab(BasePage):
|
|||
)
|
||||
|
||||
def verify_json_container_content(self) -> None:
|
||||
"""Проверяет соответствие содержимого JSON-контейнера данным из API."""
|
||||
"""Проверяет соответствие данных контейнера данным из API."""
|
||||
|
||||
actual_data = self.json_container.read_data(JsonContainerLocators.CONTAINER)
|
||||
|
||||
# send request to backend to get license info
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль страницы авторизации.
|
||||
|
||||
Содержит класс LoginPage для работы с элементами страницы входа в систему.
|
||||
Использует Playwright для взаимодействия с UI и обработки ответов сервера.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from elements.text_input_element import TextInput
|
||||
from elements.button_element import Button
|
||||
|
|
@ -10,11 +16,11 @@ class LoginPage(BasePage):
|
|||
"""Класс для работы со страницей авторизации.
|
||||
|
||||
Атрибуты:
|
||||
page (Page): Экземпляр страницы Playwright.
|
||||
login_input (TextInput): Поле ввода логина.
|
||||
password_input (TextInput): Поле ввода пароля.
|
||||
login_button (Button): Кнопка входа.
|
||||
error_alert (AlertComponent): Компонент алерта с ошибкой.
|
||||
page: Экземпляр страницы Playwright.
|
||||
login_input: Поле ввода логина.
|
||||
password_input: Поле ввода пароля.
|
||||
login_button: Кнопка входа.
|
||||
error_alert: Компонент алерта с ошибкой.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page) -> None:
|
||||
|
|
@ -23,6 +29,7 @@ class LoginPage(BasePage):
|
|||
Args:
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
self.login_input = TextInput(page, page.get_by_label("Имя пользователя"), "login input")
|
||||
|
|
@ -34,16 +41,17 @@ class LoginPage(BasePage):
|
|||
def do_login(self, username: str = None, password: str = None) -> None:
|
||||
"""Выполняет вход в систему.
|
||||
|
||||
Если username/password не указаны, использует значения из Constants.
|
||||
Использует переданные учетные данные или значения из Constants.
|
||||
Обрабатывает ответ сервера для получения токена доступа.
|
||||
|
||||
Args:
|
||||
username: Логин пользователя. Если None, используется значение из Constants.
|
||||
password: Пароль пользователя. Если None, используется значение из Constants.
|
||||
username: Логин пользователя. По умолчанию из Constants.
|
||||
password: Пароль пользователя. По умолчанию из Constants.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если после входа открылась неожиданная страница.
|
||||
"""
|
||||
|
||||
def handle_response(response):
|
||||
if "login" in response.url:
|
||||
response_body = self.get_response_body(response)
|
||||
|
|
@ -72,13 +80,14 @@ class LoginPage(BasePage):
|
|||
def do_unsuccessful_login(self, username: str = "someuser", password: str = "password") -> None:
|
||||
"""Выполняет попытку входа с неверными учетными данными.
|
||||
|
||||
Можно передать свои неверные данные или использовать значения по умолчанию.
|
||||
Проверяет наличие сообщения об ошибке.
|
||||
Проверяет наличие сообщения об ошибке. Можно передать свои данные
|
||||
или использовать значения по умолчанию.
|
||||
|
||||
Args:
|
||||
username: Неверный логин пользователя. По умолчанию "someuser".
|
||||
password: Неверный пароль пользователя. По умолчанию "password".
|
||||
username: Неверный логин. По умолчанию "someuser".
|
||||
password: Неверный пароль. По умолчанию "password".
|
||||
"""
|
||||
|
||||
self.open("")
|
||||
|
||||
self.login_input.clear()
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль главной страницы приложения.
|
||||
|
||||
Содержит класс MainPage для работы с элементами главной страницы.
|
||||
Включает взаимодействие с панелью навигации, кнопками и карточкой пользователя.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from locators.navigation_panel_locators import NavigationPanelLocators
|
||||
from locators.event_panel_locators import EventPanelLocators
|
||||
|
|
@ -10,10 +16,10 @@ class MainPage(BasePage):
|
|||
"""Класс для работы с главной страницей приложения.
|
||||
|
||||
Атрибуты:
|
||||
page (Page): Экземпляр страницы Playwright.
|
||||
navigation_panel (NavigationPanelComponent): Компонент панели навигации.
|
||||
user_button (Button): Кнопка пользователя.
|
||||
user_card (CardComponent): Карточка пользователя.
|
||||
page: Экземпляр страницы Playwright.
|
||||
navigation_panel: Компонент панели навигации.
|
||||
user_button: Кнопка пользователя.
|
||||
user_card: Карточка пользователя.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page) -> None:
|
||||
|
|
@ -22,6 +28,7 @@ class MainPage(BasePage):
|
|||
Args:
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
self.navigation_panel = NavigationPanelComponent(page)
|
||||
|
|
@ -39,45 +46,53 @@ class MainPage(BasePage):
|
|||
Args:
|
||||
item_name: Название элемента для клика.
|
||||
"""
|
||||
|
||||
self.navigation_panel.click_item(NavigationPanelLocators.PANEL_MAIN, item_name)
|
||||
|
||||
def click_configuration_navigation_panel_item(self, item_name: str) -> None:
|
||||
"""Кликает по элементу подраздела 'Конфигурация' в панели навигации.
|
||||
"""Кликает по элементу подраздела 'Конфигурация'.
|
||||
|
||||
Args:
|
||||
item_name: Название элемента для клика.
|
||||
"""
|
||||
|
||||
self.navigation_panel.click_sub_item(NavigationPanelLocators.PANEL_MAIN, 1, item_name)
|
||||
|
||||
def click_maintenance_navigation_panel_item(self, item_name: str) -> None:
|
||||
"""Кликает по элементу подраздела 'Обслуживание' в панели навигации.
|
||||
"""Кликает по элементу подраздела 'Обслуживание'.
|
||||
|
||||
Args:
|
||||
item_name: Название элемента для клика.
|
||||
"""
|
||||
|
||||
self.navigation_panel.click_sub_item(NavigationPanelLocators.PANEL_MAIN, 2, item_name)
|
||||
|
||||
def click_user_button(self) -> None:
|
||||
"""Кликает по кнопке пользователя."""
|
||||
|
||||
self.user_button.click()
|
||||
|
||||
def do_logout(self) -> None:
|
||||
"""Выполняет выход из системы."""
|
||||
|
||||
self.should_be_user_button()
|
||||
self.click_user_button()
|
||||
self.user_card.click_logout_button()
|
||||
|
||||
def scroll_navigation_panel_up(self) -> None:
|
||||
"""Прокручивает панель навигации вверх."""
|
||||
|
||||
self.navigation_panel.scroll_up(NavigationPanelLocators.PANEL_SCROLL_CONTAINER)
|
||||
|
||||
def scroll_navigation_panel_down(self) -> None:
|
||||
"""Прокручивает панель навигации вниз."""
|
||||
|
||||
self.navigation_panel.scroll_down(NavigationPanelLocators.PANEL_SCROLL_CONTAINER)
|
||||
|
||||
# Проверки:
|
||||
def should_be_navigation_panel(self) -> None:
|
||||
"""Проверяет наличие панели навигации."""
|
||||
|
||||
self.navigation_panel.check_presence(
|
||||
NavigationPanelLocators.PANEL_MAIN,
|
||||
"Navigation panel is missing"
|
||||
|
|
@ -85,14 +100,16 @@ class MainPage(BasePage):
|
|||
|
||||
def should_be_user_button(self) -> None:
|
||||
"""Проверяет наличие кнопки пользователя."""
|
||||
|
||||
self.user_button.check_presence("User button is missing on event panel")
|
||||
|
||||
def check_navigation_panel_verticall_scrolling(self) -> bool:
|
||||
"""Проверяет возможность вертикальной прокрутки панели навигации.
|
||||
"""Проверяет возможность вертикальной прокрутки панели.
|
||||
|
||||
Returns:
|
||||
bool: True если панель можно прокручивать, иначе False.
|
||||
bool: True если прокрутка возможна, иначе False.
|
||||
"""
|
||||
|
||||
return self.navigation_panel.is_scrollable_vertically(
|
||||
NavigationPanelLocators.PANEL_SCROLL_CONTAINER
|
||||
)
|
||||
|
|
@ -103,6 +120,7 @@ class MainPage(BasePage):
|
|||
Args:
|
||||
item_name: Название элемента для проверки.
|
||||
"""
|
||||
|
||||
self.navigation_panel.check_item_visibility(
|
||||
NavigationPanelLocators.PANEL_MAIN,
|
||||
item_name
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль вкладки 'Статус обслуживания'.
|
||||
|
||||
Содержит класс ServiceStatusTab для работы с таблицей сервисов.
|
||||
Позволяет проверять состояние и взаимодействовать с элементами вкладки.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from locators.table_locators import TableLocators
|
||||
from components.toolbar_component import ToolbarComponent
|
||||
|
|
@ -8,21 +14,23 @@ from pages.base_page import BasePage
|
|||
class ServiceStatusTab(BasePage):
|
||||
"""Класс для работы с вкладкой 'Статус обслуживания'.
|
||||
|
||||
Предоставляет методы для взаимодействия с таблицей сервисов и проверки её состояния.
|
||||
Предоставляет методы для взаимодействия с таблицей сервисов и проверки
|
||||
её состояния.
|
||||
|
||||
Args:
|
||||
page (Page): Экземпляр страницы Playwright.
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page) -> None:
|
||||
"""Инициализация компонентов вкладки 'Статус обслуживания'."""
|
||||
"""Инициализирует компоненты вкладки 'Статус обслуживания'."""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
self.toolbar = ToolbarComponent(page, "Статус обслуживания")
|
||||
self.services_table = TableComponent(page)
|
||||
|
||||
def get_rows_count(self) -> int:
|
||||
"""Возвращает количество строк в таблице сервисов (без учёта заголовка).
|
||||
"""Возвращает количество строк в таблице (без заголовка).
|
||||
|
||||
Returns:
|
||||
int: Количество строк с данными.
|
||||
|
|
@ -30,6 +38,7 @@ class ServiceStatusTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если таблица пуста.
|
||||
"""
|
||||
|
||||
table_content = self.services_table.read(TableLocators.TABLE_WORK_AREA)
|
||||
rows_count = len(table_content)
|
||||
|
||||
|
|
@ -40,23 +49,26 @@ class ServiceStatusTab(BasePage):
|
|||
|
||||
def scroll_services_table_up(self) -> None:
|
||||
"""Прокручивает таблицу сервисов вверх."""
|
||||
|
||||
self.services_table.scroll_up(TableLocators.TABLE_SCROLL_CONTAINER)
|
||||
|
||||
def scroll_services_table_down(self) -> None:
|
||||
"""Прокручивает таблицу сервисов вниз."""
|
||||
|
||||
self.services_table.scroll_down(TableLocators.TABLE_SCROLL_CONTAINER)
|
||||
|
||||
def check_services_table_content(self) -> None:
|
||||
"""Проверяет содержимое таблицы сервисов.
|
||||
|
||||
Проверяет:
|
||||
- Наличие заголовков таблицы
|
||||
- Соответствие заголовков ожидаемым значениям
|
||||
- Наличие хотя бы одной строки с данными
|
||||
Проверяет заголовки и наличие данных в таблице.
|
||||
|
||||
|
||||
|
||||
|
||||
Raises:
|
||||
AssertionError: Если таблица пуста или заголовки не соответствуют ожидаемым.
|
||||
AssertionError: Если таблица пуста или заголовки неверны.
|
||||
"""
|
||||
|
||||
expected_headers = [
|
||||
'Контейнер',
|
||||
'Время создания',
|
||||
|
|
@ -88,6 +100,7 @@ class ServiceStatusTab(BasePage):
|
|||
Returns:
|
||||
bool: True если прокрутка возможна, иначе False.
|
||||
"""
|
||||
|
||||
return self.services_table.is_scrollable_vertically(
|
||||
TableLocators.TABLE_SCROLL_CONTAINER
|
||||
)
|
||||
|
|
@ -96,27 +109,30 @@ class ServiceStatusTab(BasePage):
|
|||
"""Проверяет видимость первой строки таблицы.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если первая строка не видна.
|
||||
AssertionError: Если строка не видна.
|
||||
"""
|
||||
|
||||
self.services_table.check_first_row_visibility(TableLocators.TABLE_WORK_AREA)
|
||||
|
||||
def check_services_table_last_row_visibility(self) -> None:
|
||||
"""Проверяет видимость последней строки таблицы.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если последняя строка не видна.
|
||||
AssertionError: Если строка не видна.
|
||||
"""
|
||||
|
||||
self.services_table.check_last_row_visibility(TableLocators.TABLE_WORK_AREA)
|
||||
|
||||
def check_services_table_row_highlighting(self, row_index: int) -> None:
|
||||
"""Проверяет выделение указанной строки таблицы.
|
||||
|
||||
Args:
|
||||
row_index (int): Индекс проверяемой строки.
|
||||
row_index: Индекс проверяемой строки.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если строка не выделена.
|
||||
"""
|
||||
|
||||
self.services_table.check_row_highlighting(
|
||||
TableLocators.TABLE_WORK_AREA,
|
||||
row_index
|
||||
|
|
@ -128,6 +144,7 @@ class ServiceStatusTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если тулбар отсутствует.
|
||||
"""
|
||||
|
||||
self.toolbar.check_toolbar_presence("Toolbar is missing")
|
||||
|
||||
def should_be_services_table(self) -> None:
|
||||
|
|
@ -136,6 +153,7 @@ class ServiceStatusTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если таблица отсутствует.
|
||||
"""
|
||||
|
||||
self.services_table.check_presence(
|
||||
TableLocators.TABLE_WORK_AREA,
|
||||
"Service statuses table is missing"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль вкладки 'Сессия'.
|
||||
|
||||
Содержит класс SessionsTab для работы с таблицей сессий.
|
||||
Позволяет проверять состояние и взаимодействовать с элементами вкладки.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page, Locator
|
||||
from locators.table_locators import TableLocators
|
||||
from locators.button_locators import ButtonLocators
|
||||
|
|
@ -10,21 +16,23 @@ from pages.base_page import BasePage
|
|||
class SessionsTab(BasePage):
|
||||
"""Класс для работы с вкладкой 'Сессия'.
|
||||
|
||||
Предоставляет методы для взаимодействия с таблицей сессий и проверки её состояния.
|
||||
Предоставляет методы для взаимодействия с таблицей сессий и проверки
|
||||
её состояния.
|
||||
|
||||
Args:
|
||||
page (Page): Экземпляр страницы Playwright.
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page) -> None:
|
||||
"""Инициализация компонентов вкладки 'Сессия'."""
|
||||
"""Инициализирует компоненты вкладки 'Сессия'."""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
self.toolbar = ToolbarComponent(page, "Сессия")
|
||||
self.sessions_table = TableComponent(page)
|
||||
|
||||
def get_rows_count(self) -> int:
|
||||
"""Возвращает количество строк в таблице сессий (без учёта заголовка).
|
||||
"""Возвращает количество строк в таблице (без заголовка).
|
||||
|
||||
Returns:
|
||||
int: Количество строк с данными.
|
||||
|
|
@ -32,6 +40,7 @@ class SessionsTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если таблица пуста.
|
||||
"""
|
||||
|
||||
table_content = self.sessions_table.read(TableLocators.TABLE_WORK_AREA)
|
||||
rows_count = len(table_content)
|
||||
|
||||
|
|
@ -44,14 +53,15 @@ class SessionsTab(BasePage):
|
|||
"""Возвращает кнопку удаления сессии для указанной строки.
|
||||
|
||||
Args:
|
||||
row_index (int): Индекс строки в таблице
|
||||
row_index: Индекс строки в таблице.
|
||||
|
||||
Returns:
|
||||
TooltipButton: Экземпляр кнопки с подсказкой
|
||||
TooltipButton: Кнопка с подсказкой.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если строка не найдена.
|
||||
"""
|
||||
|
||||
row_locator = self.sessions_table.get_row_locator(
|
||||
TableLocators.TABLE_WORK_AREA,
|
||||
row_index
|
||||
|
|
@ -63,21 +73,24 @@ class SessionsTab(BasePage):
|
|||
|
||||
def scroll_sessions_table_up(self) -> None:
|
||||
"""Прокручивает таблицу сессий вверх."""
|
||||
|
||||
self.sessions_table.scroll_up(TableLocators.TABLE_SCROLL_CONTAINER)
|
||||
|
||||
def scroll_sessions_table_down(self) -> None:
|
||||
"""Прокручивает таблицу сессий вниз."""
|
||||
|
||||
self.sessions_table.scroll_down(TableLocators.TABLE_SCROLL_CONTAINER)
|
||||
|
||||
def check_sessions_table_content(self, verify: bool = False) -> None:
|
||||
"""Проверяет содержимое таблицы сессий.
|
||||
|
||||
Args:
|
||||
verify (bool, optional): Проверять соответствие данных из БД. По умолчанию False.
|
||||
verify: Проверять соответствие данных из БД. По умолчанию False.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если таблица пуста или заголовки не соответствуют.
|
||||
AssertionError: Если таблица пуста или заголовки неверны.
|
||||
"""
|
||||
|
||||
expected_headers = [
|
||||
'ID сессии',
|
||||
'ID пользователя',
|
||||
|
|
@ -115,6 +128,7 @@ class SessionsTab(BasePage):
|
|||
Returns:
|
||||
bool: True если прокрутка возможна, иначе False.
|
||||
"""
|
||||
|
||||
return self.sessions_table.is_scrollable_vertically(
|
||||
TableLocators.TABLE_SCROLL_CONTAINER
|
||||
)
|
||||
|
|
@ -123,27 +137,30 @@ class SessionsTab(BasePage):
|
|||
"""Проверяет видимость первой строки таблицы.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если первая строка не видна.
|
||||
AssertionError: Если строка не видна.
|
||||
"""
|
||||
|
||||
self.sessions_table.check_first_row_visibility(TableLocators.TABLE_WORK_AREA)
|
||||
|
||||
def check_sessions_table_last_row_visibility(self) -> None:
|
||||
"""Проверяет видимость последней строки таблицы.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если последняя строка не видна.
|
||||
AssertionError: Если строка не видна.
|
||||
"""
|
||||
|
||||
self.sessions_table.check_last_row_visibility(TableLocators.TABLE_WORK_AREA)
|
||||
|
||||
def check_sessions_table_row_highlighting(self, row_index: int) -> None:
|
||||
"""Проверяет выделение указанной строки таблицы.
|
||||
|
||||
Args:
|
||||
row_index (int): Индекс проверяемой строки.
|
||||
row_index: Индекс проверяемой строки.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если строка не выделена.
|
||||
"""
|
||||
|
||||
self.sessions_table.check_row_highlighting(
|
||||
TableLocators.TABLE_WORK_AREA,
|
||||
row_index
|
||||
|
|
@ -155,6 +172,7 @@ class SessionsTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если тулбар отсутствует.
|
||||
"""
|
||||
|
||||
self.toolbar.check_toolbar_presence("Toolbar is missing")
|
||||
|
||||
def should_be_sessions_table(self) -> None:
|
||||
|
|
@ -163,6 +181,7 @@ class SessionsTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если таблица отсутствует.
|
||||
"""
|
||||
|
||||
self.sessions_table.check_presence(
|
||||
TableLocators.TABLE_WORK_AREA,
|
||||
"Sessions table is missing"
|
||||
|
|
@ -176,12 +195,13 @@ class SessionsTab(BasePage):
|
|||
"""Проверяет наличие кнопки удаления в строке таблицы.
|
||||
|
||||
Args:
|
||||
row_index (int): Индекс проверяемой строки
|
||||
tooltip (str): Ожидаемый текст подсказки
|
||||
row_index: Индекс проверяемой строки.
|
||||
tooltip: Ожидаемый текст подсказки.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если кнопка отсутствует или подсказка не соответствует.
|
||||
AssertionError: Если кнопка отсутствует или подсказка неверна.
|
||||
"""
|
||||
|
||||
delete_button = self.get_delete_session_button_from_row(row_index)
|
||||
delete_button.check_presence(
|
||||
f"Delete session button is missing on {row_index} row"
|
||||
|
|
@ -192,11 +212,12 @@ class SessionsTab(BasePage):
|
|||
"""Сверяет данные таблицы с данными из БД.
|
||||
|
||||
Args:
|
||||
sessions_table (list): Данные из таблицы на странице
|
||||
sessions_table: Данные из таблицы на странице.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если данные не соответствуют.
|
||||
"""
|
||||
|
||||
expected_sessions_list = []
|
||||
|
||||
# Отправка запроса к бэкенду для получения информации о сессиях
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль вкладки 'Пользователи'.
|
||||
|
||||
Содержит класс UsersTab для работы с таблицей пользователей.
|
||||
Позволяет управлять пользователями через модальные окна и проверять их состояние.
|
||||
"""
|
||||
|
||||
import re
|
||||
from playwright.sync_api import Page
|
||||
from modal_windows.modal_edit_user import EditUserModalWindow
|
||||
|
|
@ -13,14 +19,15 @@ class UsersTab(BasePage):
|
|||
"""Класс для работы с вкладкой 'Пользователи'.
|
||||
|
||||
Предоставляет методы для взаимодействия с таблицей пользователей,
|
||||
модальными окнами добавления/редактирования и проверки состояния элементов.
|
||||
модальными окнами и проверки состояния элементов.
|
||||
|
||||
Args:
|
||||
page (Page): Экземпляр страницы Playwright.
|
||||
page: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
def __init__(self, page: Page) -> None:
|
||||
"""Инициализация компонентов вкладки 'Пользователи'."""
|
||||
"""Инициализирует компоненты вкладки 'Пользователи'."""
|
||||
|
||||
super().__init__(page)
|
||||
|
||||
locator_button_1 = self.page.get_by_role("navigation").filter(
|
||||
|
|
@ -40,15 +47,16 @@ class UsersTab(BasePage):
|
|||
self.success_alert = AlertComponent(page, "success")
|
||||
|
||||
def add_modal_window(self, window_type: str, title: str) -> None:
|
||||
"""Добавляет модальное окно в коллекцию окон.
|
||||
"""Добавляет модальное окно в коллекцию.
|
||||
|
||||
Args:
|
||||
window_type (str): Тип окна ('add_user' или 'edit_user')
|
||||
title (str): Заголовок окна (имя пользователя для редактирования)
|
||||
window_type: Тип окна ('add_user' или 'edit_user').
|
||||
title: Заголовок окна.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если указан неподдерживаемый тип окна.
|
||||
AssertionError: Если тип окна не поддерживается.
|
||||
"""
|
||||
|
||||
if window_type == "add_user":
|
||||
self.modal_windows["add_user"] = AddUserModalWindow(self.page)
|
||||
elif window_type == "edit_user":
|
||||
|
|
@ -60,14 +68,15 @@ class UsersTab(BasePage):
|
|||
"""Возвращает модальное окно по заголовку.
|
||||
|
||||
Args:
|
||||
title (str): Заголовок окна
|
||||
title: Заголовок окна.
|
||||
|
||||
Returns:
|
||||
ModalWindowComponent: Экземпляр модального окна
|
||||
ModalWindowComponent: Экземпляр модального окна.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если окно не найдено.
|
||||
"""
|
||||
|
||||
modal_window = self.modal_windows.get(title)
|
||||
if modal_window is None:
|
||||
assert False, f"Modal window with title '{title}' not found"
|
||||
|
|
@ -77,11 +86,12 @@ class UsersTab(BasePage):
|
|||
"""Удаляет модальное окно из коллекции.
|
||||
|
||||
Args:
|
||||
title (str): Заголовок окна
|
||||
title: Заголовок окна.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если окно не найдено.
|
||||
"""
|
||||
|
||||
if self.modal_windows.get(title) is None:
|
||||
assert False, f"Modal window with title '{title}' not found"
|
||||
self.modal_windows[title] = None
|
||||
|
|
@ -90,8 +100,9 @@ class UsersTab(BasePage):
|
|||
"""Закрывает модальное окно через кнопку в тулбаре.
|
||||
|
||||
Args:
|
||||
title (str): Заголовок окна
|
||||
title: Заголовок окна.
|
||||
"""
|
||||
|
||||
modal_window = self.get_modal_window(title)
|
||||
modal_window.close_window_by_toolbar_button()
|
||||
self.delete_modal_window(title)
|
||||
|
|
@ -100,45 +111,51 @@ class UsersTab(BasePage):
|
|||
"""Закрывает модальное окно через кнопку закрытия.
|
||||
|
||||
Args:
|
||||
title (str): Заголовок окна
|
||||
title: Заголовок окна.
|
||||
"""
|
||||
|
||||
modal_window = self.get_modal_window(title)
|
||||
modal_window.close_window()
|
||||
self.delete_modal_window(title)
|
||||
|
||||
def close_add_user_window_by_toolbar_button(self) -> None:
|
||||
"""Закрывает окно добавления пользователя через кнопку в тулбаре."""
|
||||
"""Закрывает окно добавления пользователя через тулбар."""
|
||||
|
||||
self.close_modal_window_by_toolbar_button("add_user")
|
||||
|
||||
def close_add_user_window(self) -> None:
|
||||
"""Закрывает окно добавления пользователя."""
|
||||
|
||||
self.close_modal_window("add_user")
|
||||
|
||||
def close_edit_user_window_by_toolbar_button(self, title: str) -> None:
|
||||
"""Закрывает окно редактирования пользователя через кнопку в тулбаре.
|
||||
"""Закрывает окно редактирования через кнопку в тулбаре.
|
||||
|
||||
Args:
|
||||
title (str): Имя пользователя (заголовок окна)
|
||||
title: Имя пользователя (заголовок окна).
|
||||
"""
|
||||
|
||||
self.close_modal_window_by_toolbar_button(title)
|
||||
|
||||
def close_edit_user_window(self, title: str) -> None:
|
||||
"""Закрывает окно редактирования пользователя.
|
||||
|
||||
Args:
|
||||
title (str): Имя пользователя (заголовок окна)
|
||||
title: Имя пользователя (заголовок окна).
|
||||
"""
|
||||
|
||||
self.close_modal_window(title)
|
||||
|
||||
def add_new_user(self, user_data: dict) -> None:
|
||||
"""Добавляет нового пользователя.
|
||||
|
||||
Args:
|
||||
user_data (dict): Данные пользователя
|
||||
user_data: Данные пользователя.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если не отображается сообщение об успешном добавлении.
|
||||
AssertionError: Если нет сообщения об успешном добавлении.
|
||||
"""
|
||||
|
||||
self.get_modal_window("add_user").new_user(user_data)
|
||||
self.success_alert.check_alert_presence(' Новый пользователь \n успешно добавлен! ')
|
||||
self.success_alert.check_alert_absence(' Новый пользователь \n успешно добавлен! ')
|
||||
|
|
@ -147,11 +164,12 @@ class UsersTab(BasePage):
|
|||
"""Удаляет пользователя.
|
||||
|
||||
Args:
|
||||
user_name (str): Имя пользователя
|
||||
user_name: Имя пользователя.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если не отображается сообщение об успешном удалении.
|
||||
AssertionError: Если нет сообщения об успешном удалении.
|
||||
"""
|
||||
|
||||
self.get_modal_window(user_name).delete_user()
|
||||
self.success_alert.check_alert_presence('\nПользователь удалён\n')
|
||||
self.success_alert.check_alert_absence('\nПользователь удалён\n')
|
||||
|
|
@ -160,12 +178,13 @@ class UsersTab(BasePage):
|
|||
"""Редактирует данные пользователя.
|
||||
|
||||
Args:
|
||||
user_name (str): Имя пользователя
|
||||
user_data (dict): Новые данные пользователя
|
||||
user_name: Имя пользователя.
|
||||
user_data: Новые данные пользователя.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если не отображается сообщение об успешном обновлении.
|
||||
AssertionError: Если нет сообщения об успешном обновлении.
|
||||
"""
|
||||
|
||||
self.get_modal_window(user_name).edit_user(user_data)
|
||||
self.success_alert.check_alert_presence('\nОбновление успешно\n')
|
||||
self.success_alert.check_alert_absence('\nОбновление успешно\n')
|
||||
|
|
@ -174,11 +193,12 @@ class UsersTab(BasePage):
|
|||
"""Сбрасывает пароль пользователя.
|
||||
|
||||
Args:
|
||||
user_name (str): Имя пользователя
|
||||
user_name: Имя пользователя.
|
||||
|
||||
Returns:
|
||||
str: Новый пароль (если получен)
|
||||
str: Новый пароль (если получен).
|
||||
"""
|
||||
|
||||
new_password = ""
|
||||
self.get_modal_window(user_name).reset_password()
|
||||
|
||||
|
|
@ -193,15 +213,16 @@ class UsersTab(BasePage):
|
|||
"""Ищет пользователя в таблице.
|
||||
|
||||
Args:
|
||||
name (str): Имя пользователя
|
||||
role (str): Роль пользователя
|
||||
name: Имя пользователя.
|
||||
role: Роль пользователя.
|
||||
|
||||
Returns:
|
||||
int: Индекс строки или -1 если не найден
|
||||
int: Индекс строки или -1 если не найден.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если таблица пуста.
|
||||
"""
|
||||
|
||||
table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA)
|
||||
if len(table_content) == 0:
|
||||
assert False, "The contents of the table are missing"
|
||||
|
|
@ -219,6 +240,7 @@ class UsersTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если кнопки недоступны или окно не открылось.
|
||||
"""
|
||||
|
||||
if self.toolbar.is_button_not_present("close"):
|
||||
self.toolbar.check_button_presence("edit")
|
||||
self.toolbar.click_button("edit")
|
||||
|
|
@ -232,14 +254,15 @@ class UsersTab(BasePage):
|
|||
"""Открывает окно редактирования по индексу строки.
|
||||
|
||||
Args:
|
||||
row_index (int): Индекс строки в таблице
|
||||
row_index: Индекс строки в таблице.
|
||||
|
||||
Returns:
|
||||
tuple: (имя пользователя, роль)
|
||||
tuple: (имя пользователя, роль).
|
||||
|
||||
Raises:
|
||||
AssertionError: Если таблица пуста или индекс вне диапазона.
|
||||
"""
|
||||
|
||||
tmp_dict = {"admin": "Администратор", "manager": "Контактное лицо", "operator": "Оператор"}
|
||||
table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA)
|
||||
|
||||
|
|
@ -265,15 +288,16 @@ class UsersTab(BasePage):
|
|||
return user_name, role
|
||||
|
||||
def open_edit_user_page_by_user(self, user_name: str, role: str) -> None:
|
||||
"""Открывает окно редактирования по имени пользователя и роли.
|
||||
"""Открывает окно редактирования по имени и роли.
|
||||
|
||||
Args:
|
||||
user_name (str): Имя пользователя
|
||||
role (str): Роль пользователя
|
||||
user_name: Имя пользователя.
|
||||
role: Роль пользователя.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если пользователь не найден.
|
||||
"""
|
||||
|
||||
row_index = self.find_user_in_table(user_name, role)
|
||||
if row_index == -1:
|
||||
assert False, f"User with name {user_name} and role {role} has not been found"
|
||||
|
|
@ -286,11 +310,12 @@ class UsersTab(BasePage):
|
|||
"""Проверяет содержимое таблицы пользователей.
|
||||
|
||||
Args:
|
||||
verify (bool, optional): Проверять соответствие данных из БД. По умолчанию False.
|
||||
verify: Проверять соответствие данных из БД. По умолчанию False.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если таблица пуста или заголовки не соответствуют.
|
||||
AssertionError: Если таблица пуста или заголовки неверны.
|
||||
"""
|
||||
|
||||
expected_headers = ['Имя пользователя', 'Тип авторизации', 'Роль', 'E-mail', 'Номер для СМС']
|
||||
table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA)
|
||||
|
||||
|
|
@ -312,15 +337,17 @@ class UsersTab(BasePage):
|
|||
|
||||
def check_add_user_window_content(self) -> None:
|
||||
"""Проверяет содержимое окна добавления пользователя."""
|
||||
|
||||
self.get_modal_window("add_user").check_content()
|
||||
|
||||
def check_edit_user_window_content(self, user_name: str, role: str) -> None:
|
||||
"""Проверяет содержимое окна редактирования пользователя.
|
||||
"""Проверяет содержимое окна редактирования.
|
||||
|
||||
Args:
|
||||
user_name (str): Имя пользователя
|
||||
role (str): Роль пользователя
|
||||
user_name: Имя пользователя.
|
||||
role: Роль пользователя.
|
||||
"""
|
||||
|
||||
edit_user_window = self.get_modal_window(user_name)
|
||||
edit_user_window.check_content(user_name, role)
|
||||
|
||||
|
|
@ -330,6 +357,7 @@ class UsersTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если тулбар или кнопка редактирования отсутствуют.
|
||||
"""
|
||||
|
||||
self.toolbar.check_toolbar_presence("Toolbar is missing")
|
||||
self.toolbar.check_button_presence("edit")
|
||||
|
||||
|
|
@ -337,8 +365,9 @@ class UsersTab(BasePage):
|
|||
"""Проверяет наличие и функциональность кнопок тулбара.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если кнопки недоступны или имеют некорректные подсказки.
|
||||
AssertionError: Если кнопки недоступны или подсказки неверны.
|
||||
"""
|
||||
|
||||
self.toolbar.check_button_presence("edit")
|
||||
self.toolbar.check_button_tooltip("edit", "Редактировать")
|
||||
|
||||
|
|
@ -357,6 +386,7 @@ class UsersTab(BasePage):
|
|||
Raises:
|
||||
AssertionError: Если таблица отсутствует.
|
||||
"""
|
||||
|
||||
self.users_table.check_presence(
|
||||
TableLocators.TABLE_WORK_AREA,
|
||||
"Users table is missing"
|
||||
|
|
@ -366,12 +396,13 @@ class UsersTab(BasePage):
|
|||
"""Проверяет наличие пользователя в таблице.
|
||||
|
||||
Args:
|
||||
name (str): Имя пользователя
|
||||
role (str): Роль пользователя
|
||||
name: Имя пользователя.
|
||||
role: Роль пользователя.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если пользователь не найден.
|
||||
"""
|
||||
|
||||
found = self.find_user_in_table(name, role)
|
||||
if found == -1:
|
||||
assert False, f"User with name {name} and role {role} has not been found"
|
||||
|
|
@ -380,12 +411,13 @@ class UsersTab(BasePage):
|
|||
"""Проверяет отсутствие пользователя в таблице.
|
||||
|
||||
Args:
|
||||
name (str): Имя пользователя
|
||||
role (str): Роль пользователя
|
||||
name: Имя пользователя.
|
||||
role: Роль пользователя.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если пользователь найден.
|
||||
"""
|
||||
|
||||
found = self.find_user_in_table(name, role)
|
||||
if found != -1:
|
||||
assert False, f"User with name {name} and role {role} has been found"
|
||||
|
|
@ -394,11 +426,12 @@ class UsersTab(BasePage):
|
|||
"""Сверяет данные таблицы с данными из БД.
|
||||
|
||||
Args:
|
||||
users_table (list): Данные из таблицы на странице
|
||||
users_table: Данные из таблицы на странице.
|
||||
|
||||
Raises:
|
||||
AssertionError: Если данные не соответствуют.
|
||||
"""
|
||||
|
||||
expected_users_list = []
|
||||
tmp_dict = {"admin": "Администратор", "manager": "Контактное лицо", "operator": "Оператор"}
|
||||
|
||||
|
|
|
|||
|
|
@ -492,18 +492,18 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.alert_component.AlertComponent.check_absence" class="md-nav__link">
|
||||
<a href="#components.alert_component.AlertComponent.check_alert_absence" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
check_absence
|
||||
check_alert_absence
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.alert_component.AlertComponent.check_presence" class="md-nav__link">
|
||||
<a href="#components.alert_component.AlertComponent.check_alert_presence" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
check_presence
|
||||
check_alert_presence
|
||||
</span>
|
||||
</a>
|
||||
|
||||
|
|
@ -1739,18 +1739,18 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.alert_component.AlertComponent.check_absence" class="md-nav__link">
|
||||
<a href="#components.alert_component.AlertComponent.check_alert_absence" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
check_absence
|
||||
check_alert_absence
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.alert_component.AlertComponent.check_presence" class="md-nav__link">
|
||||
<a href="#components.alert_component.AlertComponent.check_alert_presence" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
check_presence
|
||||
check_alert_presence
|
||||
</span>
|
||||
</a>
|
||||
|
||||
|
|
@ -1804,6 +1804,10 @@
|
|||
<a id="components.alert_component"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль для работы с компонентом alert-окна в Playwright.</p>
|
||||
<p>Содержит класс AlertComponent для взаимодействия с различными типами
|
||||
alert-окон (error, success, info, warning) и проверки их состояния.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1837,17 +1841,11 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseComponent (components.base_component.BaseComponent)" href="../base_component/#components.base_component.BaseComponent">BaseComponent</a></code></p>
|
||||
|
||||
|
||||
<p>Компонент для работы с alert-окнами.</p>
|
||||
<p>Поддерживает различные типы alert-окон: error, success, info, warning.</p>
|
||||
<p>Компонент для работы с alert-окнами Playwright.</p>
|
||||
<p>Поддерживает типы: error, success, info, warning.
|
||||
Позволяет проверять наличие, отсутствие и текст сообщений.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page: экземпляр страницы Playwright
|
||||
alert_type: тип alert-окна (error/success/info/warning)
|
||||
text: текстовый элемент сообщения alert-окна</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1855,11 +1853,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\alert_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
|
|
@ -1933,27 +1927,29 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">AlertComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент для работы с alert-окнами.</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">AlertComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент для работы с alert-окнами Playwright.</span>
|
||||
|
||||
<span class="sd"> Поддерживает различные типы alert-окон: error, success, info, warning.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> alert_type: тип alert-окна (error/success/info/warning)</span>
|
||||
<span class="sd"> text: текстовый элемент сообщения alert-окна</span>
|
||||
<span class="sd"> Поддерживает типы: error, success, info, warning.</span>
|
||||
<span class="sd"> Позволяет проверять наличие, отсутствие и текст сообщений.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">alert_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента alert-окна.</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент alert-окна.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> alert_type: тип alert-окна (error/success/info/warning)</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> alert_type: Тип alert-окна (error/success/info/warning).</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> ValueError: если передан неподдерживаемый тип alert-окна</span>
|
||||
<span class="sd"> ValueError: Если передан неподдерживаемый тип alert-окна.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="n">alert_types</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"error"</span><span class="p">,</span> <span class="s2">"success"</span><span class="p">,</span> <span class="s2">"info"</span><span class="p">,</span> <span class="s2">"warning"</span><span class="p">]</span>
|
||||
|
|
@ -1961,57 +1957,61 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Unsupported type of alert window"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span> <span class="o">=</span> <span class="n">alert_type</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">Text</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"//div[@class='v-alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2">']/div"</span><span class="p">,</span> <span class="s2">"Alert message"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">Text</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"//div[@class='v-alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2">']/div"</span><span class="p">,</span> <span class="s2">"Alert message"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_text</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Получение текста сообщения из alert-окна.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_text</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает текст сообщения из alert-окна.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: текст сообщения alert-окна</span>
|
||||
<span class="sd"> str: Текст сообщения.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">get_text</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка наличия alert-окна с заданным текстом.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_alert_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие alert-окна с заданным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: текст для проверки (если пустая строка - проверяется только наличие окна)</span>
|
||||
<span class="sd"> text: Текст для проверки. Если пустая строка - проверяет только</span>
|
||||
<span class="sd"> наличие окна.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если alert-окно не найдено</span>
|
||||
<span class="sd"> AssertionError: Если alert-окно не найдено.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"No </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> alert window on page"</span>
|
||||
<span class="k">if</span> <span class="n">text</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"alert"</span><span class="p">))</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="n">msg</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"alert"</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="n">text</span><span class="p">))</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="n">msg</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_absence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">30000</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка отсутствия alert-окна с заданным текстом.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_alert_absence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">30000</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет отсутствие alert-окна с заданным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: текст для проверки</span>
|
||||
<span class="sd"> timeout: время ожидания исчезновения (в миллисекундах)</span>
|
||||
<span class="sd"> text: Текст для проверки.</span>
|
||||
<span class="sd"> timeout: Время ожидания исчезновения (мс).</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если alert-окно не исчезает в течение заданного времени</span>
|
||||
<span class="sd"> AssertionError: Если окно не исчезает в течение заданного времени.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">seconds</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">timeout</span><span class="o">/</span><span class="mi">1000</span><span class="p">)</span>
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window should disappear after </span><span class="si">{</span><span class="n">seconds</span><span class="si">}</span><span class="s2"> seconds"</span>
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window should disappear after </span><span class="si">{</span><span class="n">seconds</span><span class="si">}</span><span class="s2"> seconds"</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"alert"</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="n">text</span><span class="p">))</span><span class="o">.</span><span class="n">to_be_hidden</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">),</span> <span class="n">msg</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alert_text</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка точного соответствия текста в alert-окне.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alert_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет точное соответствие текста в alert-окне.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> alert_text: ожидаемый текст сообщения</span>
|
||||
<span class="sd"> alert_text: Ожидаемый текст сообщения.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если текст не соответствует ожидаемому</span>
|
||||
<span class="sd"> AssertionError: Если текст не соответствует ожидаемому.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">alert_text</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Unexpected message in alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">alert_text</span><span class="p">,</span>
|
||||
<span class="sa">f</span><span class="s2">"Unexpected message in alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
||||
|
|
@ -2038,7 +2038,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация компонента alert-окна.</p>
|
||||
<p>Инициализирует компонент alert-окна.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2061,7 +2061,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>экземпляр страницы Playwright</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2077,7 +2077,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>тип alert-окна (error/success/info/warning)</p>
|
||||
<p>Тип alert-окна (error/success/info/warning).</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2103,7 +2103,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если передан неподдерживаемый тип alert-окна</p>
|
||||
<p>Если передан неподдерживаемый тип alert-окна.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2130,16 +2130,18 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">alert_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента alert-окна.</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">alert_type</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент alert-окна.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> alert_type: тип alert-окна (error/success/info/warning)</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> alert_type: Тип alert-окна (error/success/info/warning).</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> ValueError: если передан неподдерживаемый тип alert-окна</span>
|
||||
<span class="sd"> ValueError: Если передан неподдерживаемый тип alert-окна.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="n">alert_types</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"error"</span><span class="p">,</span> <span class="s2">"success"</span><span class="p">,</span> <span class="s2">"info"</span><span class="p">,</span> <span class="s2">"warning"</span><span class="p">]</span>
|
||||
|
|
@ -2147,7 +2149,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Unsupported type of alert window"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span> <span class="o">=</span> <span class="n">alert_type</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">Text</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"//div[@class='v-alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2">']/div"</span><span class="p">,</span> <span class="s2">"Alert message"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span> <span class="o">=</span> <span class="n">Text</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"//div[@class='v-alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2">']/div"</span><span class="p">,</span> <span class="s2">"Alert message"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
@ -2157,15 +2159,15 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="components.alert_component.AlertComponent.check_absence" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">check_absence</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">30000</span><span class="p">)</span></code>
|
||||
<h3 id="components.alert_component.AlertComponent.check_alert_absence" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">check_alert_absence</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">30000</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверка отсутствия alert-окна с заданным текстом.</p>
|
||||
<p>Проверяет отсутствие alert-окна с заданным текстом.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2184,10 +2186,11 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<code>text</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>текст для проверки</p>
|
||||
<p>Текст для проверки.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2199,10 +2202,11 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<code>timeout</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="int">int</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>время ожидания исчезновения (в миллисекундах)</p>
|
||||
<p>Время ожидания исчезновения (мс).</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2228,7 +2232,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если alert-окно не исчезает в течение заданного времени</p>
|
||||
<p>Если окно не исчезает в течение заданного времени.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2238,9 +2242,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\alert_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
|
|
@ -2250,18 +2252,22 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_absence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">30000</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка отсутствия alert-окна с заданным текстом.</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_alert_absence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">30000</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет отсутствие alert-окна с заданным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: текст для проверки</span>
|
||||
<span class="sd"> timeout: время ожидания исчезновения (в миллисекундах)</span>
|
||||
<span class="sd"> text: Текст для проверки.</span>
|
||||
<span class="sd"> timeout: Время ожидания исчезновения (мс).</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если alert-окно не исчезает в течение заданного времени</span>
|
||||
<span class="sd"> AssertionError: Если окно не исчезает в течение заданного времени.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">seconds</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">timeout</span><span class="o">/</span><span class="mi">1000</span><span class="p">)</span>
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window should disappear after </span><span class="si">{</span><span class="n">seconds</span><span class="si">}</span><span class="s2"> seconds"</span>
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window should disappear after </span><span class="si">{</span><span class="n">seconds</span><span class="si">}</span><span class="s2"> seconds"</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"alert"</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="n">text</span><span class="p">))</span><span class="o">.</span><span class="n">to_be_hidden</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">),</span> <span class="n">msg</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2272,15 +2278,15 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="components.alert_component.AlertComponent.check_presence" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">check_presence</span><span class="p">(</span><span class="n">text</span><span class="p">)</span></code>
|
||||
<h3 id="components.alert_component.AlertComponent.check_alert_presence" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">check_alert_presence</span><span class="p">(</span><span class="n">text</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверка наличия alert-окна с заданным текстом.</p>
|
||||
<p>Проверяет наличие alert-окна с заданным текстом.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2299,10 +2305,12 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<code>text</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>текст для проверки (если пустая строка - проверяется только наличие окна)</p>
|
||||
<p>Текст для проверки. Если пустая строка - проверяет только
|
||||
наличие окна.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2328,7 +2336,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если alert-окно не найдено</p>
|
||||
<p>Если alert-окно не найдено.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2351,15 +2359,19 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка наличия alert-окна с заданным текстом.</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_alert_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие alert-окна с заданным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: текст для проверки (если пустая строка - проверяется только наличие окна)</span>
|
||||
<span class="sd"> text: Текст для проверки. Если пустая строка - проверяет только</span>
|
||||
<span class="sd"> наличие окна.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если alert-окно не найдено</span>
|
||||
<span class="sd"> AssertionError: Если alert-окно не найдено.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"No </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> alert window on page"</span>
|
||||
<span class="k">if</span> <span class="n">text</span> <span class="o">==</span> <span class="s2">""</span><span class="p">:</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"alert"</span><span class="p">))</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="n">msg</span>
|
||||
|
|
@ -2382,7 +2394,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверка точного соответствия текста в alert-окне.</p>
|
||||
<p>Проверяет точное соответствие текста в alert-окне.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2401,10 +2413,11 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<code>alert_text</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>ожидаемый текст сообщения</p>
|
||||
<p>Ожидаемый текст сообщения.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2430,7 +2443,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если текст не соответствует ожидаемому</p>
|
||||
<p>Если текст не соответствует ожидаемому.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2440,25 +2453,29 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\alert_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alert_text</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка точного соответствия текста в alert-окне.</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alert_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет точное соответствие текста в alert-окне.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> alert_text: ожидаемый текст сообщения</span>
|
||||
<span class="sd"> alert_text: Ожидаемый текст сообщения.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если текст не соответствует ожидаемому</span>
|
||||
<span class="sd"> AssertionError: Если текст не соответствует ожидаемому.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">alert_text</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Unexpected message in alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">alert_text</span><span class="p">,</span>
|
||||
<span class="sa">f</span><span class="s2">"Unexpected message in alert </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">alert_type</span><span class="si">}</span><span class="s2"> window"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
@ -2476,7 +2493,7 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Получение текста сообщения из alert-окна.</p>
|
||||
<p>Возвращает текст сообщения из alert-окна.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
|
|
@ -2490,10 +2507,11 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td><code>str</code></td> <td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>текст сообщения alert-окна</p>
|
||||
<p>Текст сообщения.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2509,12 +2527,14 @@ text: текстовый элемент сообщения alert-окна</p>
|
|||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_text</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Получение текста сообщения из alert-окна.</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_text</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает текст сообщения из alert-окна.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: текст сообщения alert-окна</span>
|
||||
<span class="sd"> str: Текст сообщения.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">get_text</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1876,6 +1876,9 @@
|
|||
<a id="components.base_component"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Базовый модуль для работы с компонентами страницы.</p>
|
||||
<p>Содержит базовый класс для взаимодействия с элементами страницы через Playwright.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1914,11 +1917,6 @@
|
|||
- работа с прокруткой</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page: экземпляр страницы Playwright</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1926,11 +1924,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal"> 10</span>
|
||||
<span class="normal"> 11</span>
|
||||
<span class="normal"> 12</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 12</span>
|
||||
<span class="normal"> 13</span>
|
||||
<span class="normal"> 14</span>
|
||||
<span class="normal"> 15</span>
|
||||
|
|
@ -2090,24 +2084,32 @@
|
|||
<span class="normal">169</span>
|
||||
<span class="normal">170</span>
|
||||
<span class="normal">171</span>
|
||||
<span class="normal">172</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">BaseComponent</span><span class="p">:</span>
|
||||
<span class="normal">172</span>
|
||||
<span class="normal">173</span>
|
||||
<span class="normal">174</span>
|
||||
<span class="normal">175</span>
|
||||
<span class="normal">176</span>
|
||||
<span class="normal">177</span>
|
||||
<span class="normal">178</span>
|
||||
<span class="normal">179</span>
|
||||
<span class="normal">180</span>
|
||||
<span class="normal">181</span>
|
||||
<span class="normal">182</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">BaseComponent</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Базовый компонент для работы с элементами страницы.</span>
|
||||
|
||||
<span class="sd"> Предоставляет общие методы для взаимодействия с элементами:</span>
|
||||
<span class="sd"> - получение локаторов</span>
|
||||
<span class="sd"> - проверка видимости элементов</span>
|
||||
<span class="sd"> - работа с прокруткой</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация базового компонента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span> <span class="o">=</span> <span class="n">page</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
|
|
@ -2115,14 +2117,15 @@
|
|||
<span class="w"> </span><span class="sd">"""Получение объекта Locator из строки или существующего Locator.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: строка с CSS/XPath селектором или объект Locator</span>
|
||||
<span class="sd"> locator: строка с CSS/XPath селектором или объект Locator.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Locator: объект для работы с элементом</span>
|
||||
<span class="sd"> Locator: объект для работы с элементом.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> TypeError: если передан некорректный тип локатора</span>
|
||||
<span class="sd"> TypeError: если передан некорректный тип локатора.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">locator</span><span class="p">,</span> <span class="n">Locator</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">locator</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">locator</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
|
|
@ -2141,53 +2144,57 @@
|
|||
<span class="c1"># return elements</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка видимости элемента на странице.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента (строка или объект Locator)</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при неудачной проверке</span>
|
||||
<span class="sd"> locator: локатор элемента (строка или объект Locator).</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при неудачной проверке.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если элемент не виден на странице</span>
|
||||
<span class="sd"> AssertionError: если элемент не виден на странице.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">loc</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(</span><span class="n">visible</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">12000</span><span class="p">),</span> <span class="n">msg</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_vertically</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_vertically</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка возможности вертикальной прокрутки элемента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить вертикально</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить вертикально.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollHeight > el.clientHeight"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_horizontally</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_horizontally</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка возможности горизонтальной прокрутки элемента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить горизонтально</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить горизонтально.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollWidth > el.clientWidth"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Методы прокрутки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_up</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_up</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента вверх.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollTo(0, 0)"</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">wait_for</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">2000</span><span class="p">)</span>
|
||||
|
|
@ -2196,15 +2203,16 @@
|
|||
<span class="n">scroll_position</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollTop"</span><span class="p">)</span>
|
||||
<span class="k">assert</span> <span class="n">scroll_position</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"Invalid postion after scroll up"</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_down</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_down</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента вниз.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollTo(0, el.scrollHeight)"</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">wait_for</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">2000</span><span class="p">)</span>
|
||||
|
|
@ -2213,15 +2221,16 @@
|
|||
<span class="n">scroll_position</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollTop"</span><span class="p">)</span>
|
||||
<span class="k">assert</span> <span class="n">scroll_position</span> <span class="o">></span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"Invalid postion after scroll down"</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_left</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_left</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента влево.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
|
||||
<span class="n">width</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollWidth"</span><span class="p">)</span>
|
||||
|
|
@ -2234,15 +2243,16 @@
|
|||
<span class="n">scroll_position</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollLeft"</span><span class="p">)</span>
|
||||
<span class="k">assert</span> <span class="n">scroll_position</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">"Invalid postion after scroll left"</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_right</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_right</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента вправо.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
|
||||
<span class="n">width</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollWidth"</span><span class="p">)</span>
|
||||
|
|
@ -2304,7 +2314,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>экземпляр страницы Playwright</p>
|
||||
<p>экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2317,18 +2327,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация базового компонента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span> <span class="o">=</span> <span class="n">page</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2366,10 +2378,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>локатор элемента (строка или объект Locator)</p>
|
||||
<p>локатор элемента (строка или объект Locator).</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2381,10 +2394,11 @@
|
|||
<code>msg</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>сообщение об ошибке при неудачной проверке</p>
|
||||
<p>сообщение об ошибке при неудачной проверке.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2410,7 +2424,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если элемент не виден на странице</p>
|
||||
<p>если элемент не виден на странице.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2420,10 +2434,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
|
|
@ -2431,16 +2442,21 @@
|
|||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка видимости элемента на странице.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента (строка или объект Locator)</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при неудачной проверке</span>
|
||||
<span class="sd"> locator: локатор элемента (строка или объект Locator).</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при неудачной проверке.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если элемент не виден на странице</span>
|
||||
<span class="sd"> AssertionError: если элемент не виден на странице.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">loc</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(</span><span class="n">visible</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mi">12000</span><span class="p">),</span> <span class="n">msg</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2483,7 +2499,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>строка с CSS/XPath селектором или объект Locator</p>
|
||||
<p>строка с CSS/XPath селектором или объект Locator.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2509,7 +2525,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>объект для работы с элементом</p>
|
||||
<p>объект для работы с элементом.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2532,7 +2548,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если передан некорректный тип локатора</p>
|
||||
<p>если передан некорректный тип локатора.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2542,9 +2558,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
|
|
@ -2559,18 +2573,22 @@
|
|||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_locator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="n">Locator</span><span class="p">:</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_locator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="n">Locator</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Получение объекта Locator из строки или существующего Locator.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: строка с CSS/XPath селектором или объект Locator</span>
|
||||
<span class="sd"> locator: строка с CSS/XPath селектором или объект Locator.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Locator: объект для работы с элементом</span>
|
||||
<span class="sd"> Locator: объект для работы с элементом.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> TypeError: если передан некорректный тип локатора</span>
|
||||
<span class="sd"> TypeError: если передан некорректный тип локатора.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">locator</span><span class="p">,</span> <span class="n">Locator</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="n">locator</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">locator</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
||||
|
|
@ -2613,10 +2631,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>локатор элемента</p>
|
||||
<p>локатор элемента.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2642,7 +2661,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True если элемент можно прокрутить горизонтально</p>
|
||||
<p>True если элемент можно прокрутить горизонтально.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2652,25 +2671,27 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_horizontally</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_horizontally</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка возможности горизонтальной прокрутки элемента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить горизонтально</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить горизонтально.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollWidth > el.clientWidth"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2709,10 +2730,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>локатор элемента</p>
|
||||
<p>локатор элемента.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2738,7 +2760,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True если элемент можно прокрутить вертикально</p>
|
||||
<p>True если элемент можно прокрутить вертикально.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2748,25 +2770,27 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_vertically</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_scrollable_vertically</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка возможности вертикальной прокрутки элемента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить вертикально</span>
|
||||
<span class="sd"> bool: True если элемент можно прокрутить вертикально.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollHeight > el.clientHeight"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2805,10 +2829,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>локатор элемента</p>
|
||||
<p>локатор элемента.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2834,7 +2859,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если прокрутка не выполнена до конца</p>
|
||||
<p>если прокрутка не выполнена до конца.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2844,14 +2869,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">121</span>
|
||||
<span class="normal">122</span>
|
||||
<span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
|
|
@ -2859,15 +2877,24 @@
|
|||
<span class="normal">126</span>
|
||||
<span class="normal">127</span>
|
||||
<span class="normal">128</span>
|
||||
<span class="normal">129</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_down</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="normal">129</span>
|
||||
<span class="normal">130</span>
|
||||
<span class="normal">131</span>
|
||||
<span class="normal">132</span>
|
||||
<span class="normal">133</span>
|
||||
<span class="normal">134</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_down</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента вниз.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollTo(0, el.scrollHeight)"</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">wait_for</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">2000</span><span class="p">)</span>
|
||||
|
|
@ -2911,10 +2938,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>локатор элемента</p>
|
||||
<p>локатор элемента.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2940,7 +2968,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если прокрутка не выполнена до конца</p>
|
||||
<p>если прокрутка не выполнена до конца.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2950,15 +2978,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">131</span>
|
||||
<span class="normal">132</span>
|
||||
<span class="normal">133</span>
|
||||
<span class="normal">134</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span>
|
||||
<span class="normal">138</span>
|
||||
<span class="normal">139</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
|
|
@ -2969,15 +2989,25 @@
|
|||
<span class="normal">147</span>
|
||||
<span class="normal">148</span>
|
||||
<span class="normal">149</span>
|
||||
<span class="normal">150</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_left</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="normal">150</span>
|
||||
<span class="normal">151</span>
|
||||
<span class="normal">152</span>
|
||||
<span class="normal">153</span>
|
||||
<span class="normal">154</span>
|
||||
<span class="normal">155</span>
|
||||
<span class="normal">156</span>
|
||||
<span class="normal">157</span>
|
||||
<span class="normal">158</span>
|
||||
<span class="normal">159</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_left</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента влево.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
|
||||
<span class="n">width</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollWidth"</span><span class="p">)</span>
|
||||
|
|
@ -3025,10 +3055,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>локатор элемента</p>
|
||||
<p>локатор элемента.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -3054,7 +3085,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если прокрутка не выполнена до конца</p>
|
||||
<p>если прокрутка не выполнена до конца.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -3064,16 +3095,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">152</span>
|
||||
<span class="normal">153</span>
|
||||
<span class="normal">154</span>
|
||||
<span class="normal">155</span>
|
||||
<span class="normal">156</span>
|
||||
<span class="normal">157</span>
|
||||
<span class="normal">158</span>
|
||||
<span class="normal">159</span>
|
||||
<span class="normal">160</span>
|
||||
<span class="normal">161</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">161</span>
|
||||
<span class="normal">162</span>
|
||||
<span class="normal">163</span>
|
||||
<span class="normal">164</span>
|
||||
|
|
@ -3084,15 +3106,26 @@
|
|||
<span class="normal">169</span>
|
||||
<span class="normal">170</span>
|
||||
<span class="normal">171</span>
|
||||
<span class="normal">172</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_right</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="normal">172</span>
|
||||
<span class="normal">173</span>
|
||||
<span class="normal">174</span>
|
||||
<span class="normal">175</span>
|
||||
<span class="normal">176</span>
|
||||
<span class="normal">177</span>
|
||||
<span class="normal">178</span>
|
||||
<span class="normal">179</span>
|
||||
<span class="normal">180</span>
|
||||
<span class="normal">181</span>
|
||||
<span class="normal">182</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_right</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента вправо.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
|
||||
<span class="n">width</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollWidth"</span><span class="p">)</span>
|
||||
|
|
@ -3141,10 +3174,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>локатор элемента</p>
|
||||
<p>локатор элемента.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -3170,7 +3204,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если прокрутка не выполнена до конца</p>
|
||||
<p>если прокрутка не выполнена до конца.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -3180,13 +3214,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\base_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">103</span>
|
||||
<span class="normal">104</span>
|
||||
<span class="normal">105</span>
|
||||
<span class="normal">106</span>
|
||||
|
|
@ -3195,15 +3223,23 @@
|
|||
<span class="normal">109</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_up</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_up</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокрутка элемента вверх.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: локатор элемента</span>
|
||||
<span class="sd"> locator: локатор элемента.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца</span>
|
||||
<span class="sd"> AssertionError: если прокрутка не выполнена до конца.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => el.scrollTo(0, 0)"</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">wait_for</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">2000</span><span class="p">)</span>
|
||||
|
|
|
|||
|
|
@ -1750,6 +1750,9 @@
|
|||
<a id="components.card_component"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль компонента карточки пользователя.</p>
|
||||
<p>Содержит класс для работы с карточкой пользователя через Playwright.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1784,15 +1787,9 @@
|
|||
|
||||
|
||||
<p>Компонент карточки пользователя.</p>
|
||||
<p>Предоставляет методы для взаимодействия с элементами карточки пользователя.</p>
|
||||
<p>Предоставляет методы для взаимодействия с элементами карточки.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page: экземпляр страницы Playwright
|
||||
logout_button: кнопка выхода из системы</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1800,10 +1797,7 @@ logout_button: кнопка выхода из системы</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\card_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
|
|
@ -1830,36 +1824,35 @@ logout_button: кнопка выхода из системы</p>
|
|||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">CardComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">CardComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент карточки пользователя.</span>
|
||||
|
||||
<span class="sd"> Предоставляет методы для взаимодействия с элементами карточки пользователя.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> logout_button: кнопка выхода из системы</span>
|
||||
<span class="sd"> Предоставляет методы для взаимодействия с элементами карточки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента карточки пользователя.</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент карточки пользователя.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">logout_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"Выйти"</span><span class="p">),</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"Выйти"</span><span class="p">),</span>
|
||||
<span class="s2">"logout button"</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_logout_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки выхода из системы.</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку выхода из системы.</span>
|
||||
|
||||
<span class="sd"> Выполняет клик по кнопке 'Выйти' в карточке пользователя.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">logout_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -1887,7 +1880,7 @@ logout_button: кнопка выхода из системы</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация компонента карточки пользователя.</p>
|
||||
<p>Инициализирует компонент карточки пользователя.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1910,7 +1903,7 @@ logout_button: кнопка выхода из системы</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>экземпляр страницы Playwright</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -1923,7 +1916,8 @@ logout_button: кнопка выхода из системы</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\card_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">21</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
|
|
@ -1936,16 +1930,17 @@ logout_button: кнопка выхода из системы</p>
|
|||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента карточки пользователя.</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент карточки пользователя.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">logout_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"Выйти"</span><span class="p">),</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"Выйти"</span><span class="p">),</span>
|
||||
<span class="s2">"logout button"</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -1965,7 +1960,7 @@ logout_button: кнопка выхода из системы</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Нажатие кнопки выхода из системы.</p>
|
||||
<p>Нажимает кнопку выхода из системы.</p>
|
||||
<p>Выполняет клик по кнопке 'Выйти' в карточке пользователя.</p>
|
||||
|
||||
|
||||
|
|
@ -1976,11 +1971,13 @@ logout_button: кнопка выхода из системы</p>
|
|||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_logout_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки выхода из системы.</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_logout_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку выхода из системы.</span>
|
||||
|
||||
<span class="sd"> Выполняет клик по кнопке 'Выйти' в карточке пользователя.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">logout_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1822,6 +1822,10 @@
|
|||
<a id="components.confirm_component"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль компонента окна подтверждения действий.</p>
|
||||
<p>Содержит класс ConfirmComponent для взаимодействия с окном подтверждения,
|
||||
включая кнопки подтверждения, отмены и закрытия, а также проверки текста.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1856,20 +1860,8 @@
|
|||
|
||||
|
||||
<p>Компонент окна подтверждения действий.</p>
|
||||
<p>Предоставляет методы для взаимодействия с диалоговыми окнами подтверждения,
|
||||
содержащими кнопки отмены и подтверждения действия.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page: экземпляр страницы Playwright
|
||||
title: текстовый элемент заголовка окна
|
||||
text: текстовый элемент основного сообщения
|
||||
close_button: кнопка закрытия окна
|
||||
cancel_button: кнопка отмены действия
|
||||
allow_button: кнопка подтверждения действия</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1877,11 +1869,7 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\confirm_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
|
|
@ -1945,43 +1933,18 @@ allow_button: кнопка подтверждения действия</p>
|
|||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ConfirmComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент окна подтверждения действий.</span>
|
||||
|
||||
<span class="sd"> Предоставляет методы для взаимодействия с диалоговыми окнами подтверждения,</span>
|
||||
<span class="sd"> содержащими кнопки отмены и подтверждения действия.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> title: текстовый элемент заголовка окна</span>
|
||||
<span class="sd"> text: текстовый элемент основного сообщения</span>
|
||||
<span class="sd"> close_button: кнопка закрытия окна</span>
|
||||
<span class="sd"> cancel_button: кнопка отмены действия</span>
|
||||
<span class="sd"> allow_button: кнопка подтверждения действия</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="normal">81</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ConfirmComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент окна подтверждения действий."""</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">cancel_button_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">allow_button_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента окна подтверждения.</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> cancel_button_text: текст на кнопке отмены</span>
|
||||
<span class="sd"> allow_button_text: текст на кнопке подтверждения</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> cancel_button_text: Текст кнопки отмены.</span>
|
||||
<span class="sd"> allow_button_text: Текст кнопки подтверждения.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">Text</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">ConfirmLocators</span><span class="o">.</span><span class="n">TITLE</span><span class="p">,</span> <span class="s2">"confirm title"</span><span class="p">)</span>
|
||||
|
|
@ -1989,58 +1952,51 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">close_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">ConfirmLocators</span><span class="o">.</span><span class="n">BUTTON_CLOSE</span><span class="p">,</span> <span class="s2">"confirm close button"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">cancel_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">cancel_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">cancel_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="s2">"confirm cancel button"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">allow_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">allow_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">allow_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="s2">"confirm allow button"</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_allow_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки подтверждения действия.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_allow_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку подтверждения действия."""</span>
|
||||
|
||||
<span class="sd"> Выполняет клик по кнопке с текстом, переданным в allow_button_text.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">allow_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_cancel_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки отмены действия.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_cancel_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку отмены действия."""</span>
|
||||
|
||||
<span class="sd"> Выполняет клик по кнопке с текстом, переданным в cancel_button_text.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">cancel_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_close_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки закрытия окна подтверждения."""</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_close_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку закрытия окна подтверждения."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">close_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка текста заголовка окна подтверждения.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет текст заголовка окна подтверждения.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> title: ожидаемый текст заголовка</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при несоответствии</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если текст заголовка не соответствует ожидаемому</span>
|
||||
<span class="sd"> title: Ожидаемый текст заголовка.</span>
|
||||
<span class="sd"> msg: Сообщение при ошибке.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка текста сообщения в окне подтверждения.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет текст сообщения в окне подтверждения.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: ожидаемый текст сообщения</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при несоответствии</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если текст сообщения не соответствует ожидаемому</span>
|
||||
<span class="sd"> text: Ожидаемый текст сообщения.</span>
|
||||
<span class="sd"> msg: Сообщение при ошибке.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2068,7 +2024,7 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация компонента окна подтверждения.</p>
|
||||
<p>Инициализация компонента.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2091,7 +2047,7 @@ allow_button: кнопка подтверждения действия</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>экземпляр страницы Playwright</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2107,7 +2063,7 @@ allow_button: кнопка подтверждения действия</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>текст на кнопке отмены</p>
|
||||
<p>Текст кнопки отмены.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2123,7 +2079,7 @@ allow_button: кнопка подтверждения действия</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>текст на кнопке подтверждения</p>
|
||||
<p>Текст кнопки подтверждения.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2136,7 +2092,15 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\confirm_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">28</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
|
|
@ -2152,21 +2116,15 @@ allow_button: кнопка подтверждения действия</p>
|
|||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">cancel_button_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">allow_button_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента окна подтверждения.</span>
|
||||
<span class="normal">44</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">cancel_button_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">allow_button_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: экземпляр страницы Playwright</span>
|
||||
<span class="sd"> cancel_button_text: текст на кнопке отмены</span>
|
||||
<span class="sd"> allow_button_text: текст на кнопке подтверждения</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> cancel_button_text: Текст кнопки отмены.</span>
|
||||
<span class="sd"> allow_button_text: Текст кнопки подтверждения.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">Text</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">ConfirmLocators</span><span class="o">.</span><span class="n">TITLE</span><span class="p">,</span> <span class="s2">"confirm title"</span><span class="p">)</span>
|
||||
|
|
@ -2174,13 +2132,13 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">close_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">ConfirmLocators</span><span class="o">.</span><span class="n">BUTTON_CLOSE</span><span class="p">,</span> <span class="s2">"confirm close button"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">cancel_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">cancel_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">cancel_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="s2">"confirm cancel button"</span>
|
||||
<span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">allow_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">allow_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="p">,</span>
|
||||
<span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"button"</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">allow_button_text</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">,</span>
|
||||
<span class="s2">"confirm allow button"</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2200,7 +2158,7 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверка текста сообщения в окне подтверждения.</p>
|
||||
<p>Проверяет текст сообщения в окне подтверждения.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2219,10 +2177,11 @@ allow_button: кнопка подтверждения действия</p>
|
|||
<code>text</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>ожидаемый текст сообщения</p>
|
||||
<p>Ожидаемый текст сообщения.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2234,10 +2193,11 @@ allow_button: кнопка подтверждения действия</p>
|
|||
<code>msg</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>сообщение об ошибке при несоответствии</p>
|
||||
<p>Сообщение при ошибке.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2248,51 +2208,24 @@ allow_button: кнопка подтверждения действия</p>
|
|||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="AssertionError">AssertionError</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если текст сообщения не соответствует ожидаемому</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\confirm_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка текста сообщения в окне подтверждения.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет текст сообщения в окне подтверждения.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: ожидаемый текст сообщения</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при несоответствии</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если текст сообщения не соответствует ожидаемому</span>
|
||||
<span class="sd"> text: Ожидаемый текст сообщения.</span>
|
||||
<span class="sd"> msg: Сообщение при ошибке.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2311,7 +2244,7 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверка текста заголовка окна подтверждения.</p>
|
||||
<p>Проверяет текст заголовка окна подтверждения.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2330,10 +2263,11 @@ allow_button: кнопка подтверждения действия</p>
|
|||
<code>title</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>ожидаемый текст заголовка</p>
|
||||
<p>Ожидаемый текст заголовка.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2345,10 +2279,11 @@ allow_button: кнопка подтверждения действия</p>
|
|||
<code>msg</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>сообщение об ошибке при несоответствии</p>
|
||||
<p>Сообщение при ошибке.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2359,51 +2294,24 @@ allow_button: кнопка подтверждения действия</p>
|
|||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="AssertionError">AssertionError</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>если текст заголовка не соответствует ожидаемому</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\confirm_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">msg</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверка текста заголовка окна подтверждения.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет текст заголовка окна подтверждения.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> title: ожидаемый текст заголовка</span>
|
||||
<span class="sd"> msg: сообщение об ошибке при несоответствии</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: если текст заголовка не соответствует ожидаемому</span>
|
||||
<span class="sd"> title: Ожидаемый текст заголовка.</span>
|
||||
<span class="sd"> msg: Сообщение при ошибке.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2422,22 +2330,17 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Нажатие кнопки подтверждения действия.</p>
|
||||
<p>Выполняет клик по кнопке с текстом, переданным в allow_button_text.</p>
|
||||
<p>Нажимает кнопку подтверждения действия.</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\confirm_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_allow_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки подтверждения действия.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_allow_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку подтверждения действия."""</span>
|
||||
|
||||
<span class="sd"> Выполняет клик по кнопке с текстом, переданным в allow_button_text.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">allow_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2456,22 +2359,17 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Нажатие кнопки отмены действия.</p>
|
||||
<p>Выполняет клик по кнопке с текстом, переданным в cancel_button_text.</p>
|
||||
<p>Нажимает кнопку отмены действия.</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\confirm_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_cancel_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки отмены действия.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_cancel_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку отмены действия."""</span>
|
||||
|
||||
<span class="sd"> Выполняет клик по кнопке с текстом, переданным в cancel_button_text.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">cancel_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2490,15 +2388,17 @@ allow_button: кнопка подтверждения действия</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Нажатие кнопки закрытия окна подтверждения.</p>
|
||||
<p>Нажимает кнопку закрытия окна подтверждения.</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\confirm_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_close_button</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажатие кнопки закрытия окна подтверждения."""</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_close_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Нажимает кнопку закрытия окна подтверждения."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">close_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1804,6 +1804,8 @@
|
|||
<a id="components.navbar_component"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль компонента панели навигации. Содержит класс для работы с элементами навигации.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1837,16 +1839,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseComponent (components.base_component.BaseComponent)" href="../base_component/#components.base_component.BaseComponent">BaseComponent</a></code></p>
|
||||
|
||||
|
||||
<p>Компонент панели навигации.</p>
|
||||
<p>Предоставляет методы для взаимодействия с элементами навигационной панели.
|
||||
Наследуется от BaseComponent.</p>
|
||||
<p>Компонент панели навигации. Предоставляет методы для взаимодействия с ней.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page: Page - экземпляр страницы Playwright</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1928,58 +1923,66 @@
|
|||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">NavigationPanelComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент панели навигации.</span>
|
||||
|
||||
<span class="sd"> Предоставляет методы для взаимодействия с элементами навигационной панели.</span>
|
||||
<span class="sd"> Наследуется от BaseComponent.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page: Page - экземпляр страницы Playwright</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span>
|
||||
<span class="normal">96</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">NavigationPanelComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент панели навигации. Предоставляет методы для взаимодействия с ней."""</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента панели навигации.</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент панели навигации.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Page - экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Получает тексты всех элементов по указанному локатору.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тексты всех элементов по указанному локатору.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элементов</span>
|
||||
<span class="sd"> locator: Локатор элементов или строка с CSS/XPath.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: Список текстов элементов</span>
|
||||
<span class="sd"> Список текстов элементов.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">loc</span><span class="o">.</span><span class="n">all_inner_texts</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу с указанным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элемента</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика</span>
|
||||
<span class="sd"> locator: Локатор элемента или строка с CSS/XPath.</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">sublevel_number</span><span class="p">,</span> <span class="n">item_name</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">sublevel_number</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по вложенному элементу с указанным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элемента</span>
|
||||
<span class="sd"> sublevel_number: Уровень вложенности (1 или 2)</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика</span>
|
||||
<span class="sd"> locator: Локатор родительского элемента.</span>
|
||||
<span class="sd"> sublevel_number: Уровень вложенности (1 или 2).</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> ValueError: Если указан недопустимый уровень вложенности</span>
|
||||
<span class="sd"> ValueError: Если уровень вложенности не 1 или 2.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">root_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">NODE_ROOT</span><span class="p">)</span>
|
||||
<span class="n">children_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">NODE_CHILDREN</span><span class="p">)</span>
|
||||
|
||||
|
|
@ -1993,15 +1996,29 @@
|
|||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"the navigation panel has two levels of nesting only"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость элемента с указанным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элемента</span>
|
||||
<span class="sd"> item_name: Текст элемента для проверки</span>
|
||||
<span class="sd"> locator: Локатор элемента или строка с CSS/XPath.</span>
|
||||
<span class="sd"> item_name: Текст элемента для проверки.</span>
|
||||
|
||||
<span class="sd"> Note:</span>
|
||||
<span class="sd"> Временная обработка для элементов с текстом 'Шаблоны'.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span>
|
||||
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Navigation panel item '</span><span class="si">{</span><span class="n">item_name</span><span class="si">}</span><span class="s2">' is not visible"</span>
|
||||
|
||||
<span class="c1">## временно: в навигационной панели есть две панели с именем Шаблоны</span>
|
||||
<span class="c1">## для их различия добавлены индексы Шаблоны_1 для Настройки/Шаблоны</span>
|
||||
<span class="c1">## Шаблоны_2 для Настройки/ZTP/Шаблоны</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">item_name</span> <span class="o">==</span> <span class="s2">"Шаблоны_1"</span><span class="p">:</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="s2">"Шаблоны"</span><span class="p">)</span><span class="o">.</span><span class="n">first</span>
|
||||
<span class="k">elif</span> <span class="n">item_name</span> <span class="o">==</span> <span class="s2">"Шаблоны_2"</span><span class="p">:</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="s2">"Шаблоны"</span><span class="p">)</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2029,7 +2046,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация компонента панели навигации.</p>
|
||||
<p>Инициализирует компонент панели навигации.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2052,7 +2069,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Page - экземпляр страницы Playwright</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2065,18 +2082,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\navbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента панели навигации.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент панели навигации.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Page - экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2114,10 +2133,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор для поиска элемента</p>
|
||||
<p>Локатор элемента или строка с CSS/XPath.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2129,10 +2149,11 @@
|
|||
<code>item_name</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Текст элемента для проверки</p>
|
||||
<p>Текст элемента для проверки.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2143,9 +2164,17 @@
|
|||
</table>
|
||||
|
||||
|
||||
<details class="note" open>
|
||||
<summary>Note</summary>
|
||||
<p>Временная обработка для элементов с текстом 'Шаблоны'.</p>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\navbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">76</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
|
|
@ -2154,15 +2183,40 @@
|
|||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">):</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span>
|
||||
<span class="normal">96</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость элемента с указанным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элемента</span>
|
||||
<span class="sd"> item_name: Текст элемента для проверки</span>
|
||||
<span class="sd"> locator: Локатор элемента или строка с CSS/XPath.</span>
|
||||
<span class="sd"> item_name: Текст элемента для проверки.</span>
|
||||
|
||||
<span class="sd"> Note:</span>
|
||||
<span class="sd"> Временная обработка для элементов с текстом 'Шаблоны'.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span>
|
||||
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Navigation panel item '</span><span class="si">{</span><span class="n">item_name</span><span class="si">}</span><span class="s2">' is not visible"</span>
|
||||
|
||||
<span class="c1">## временно: в навигационной панели есть две панели с именем Шаблоны</span>
|
||||
<span class="c1">## для их различия добавлены индексы Шаблоны_1 для Настройки/Шаблоны</span>
|
||||
<span class="c1">## Шаблоны_2 для Настройки/ZTP/Шаблоны</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">item_name</span> <span class="o">==</span> <span class="s2">"Шаблоны_1"</span><span class="p">:</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="s2">"Шаблоны"</span><span class="p">)</span><span class="o">.</span><span class="n">first</span>
|
||||
<span class="k">elif</span> <span class="n">item_name</span> <span class="o">==</span> <span class="s2">"Шаблоны_2"</span><span class="p">:</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="s2">"Шаблоны"</span><span class="p">)</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="n">loc</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2200,10 +2254,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор для поиска элемента</p>
|
||||
<p>Локатор элемента или строка с CSS/XPath.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2215,10 +2270,11 @@
|
|||
<code>item_name</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Текст элемента для клика</p>
|
||||
<p>Текст элемента для клика.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2231,21 +2287,23 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\navbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">42</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">):</span>
|
||||
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу с указанным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элемента</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика</span>
|
||||
<span class="sd"> locator: Локатор элемента или строка с CSS/XPath.</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2284,10 +2342,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор для поиска элемента</p>
|
||||
<p>Локатор родительского элемента.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2299,10 +2358,11 @@
|
|||
<code>sublevel_number</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="int">int</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Уровень вложенности (1 или 2)</p>
|
||||
<p>Уровень вложенности (1 или 2).</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2314,10 +2374,11 @@
|
|||
<code>item_name</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Текст элемента для клика</p>
|
||||
<p>Текст элемента для клика.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2343,7 +2404,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если указан недопустимый уровень вложенности</p>
|
||||
<p>Если уровень вложенности не 1 или 2.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2353,7 +2414,11 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\navbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
|
|
@ -2371,20 +2436,18 @@
|
|||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">sublevel_number</span><span class="p">,</span> <span class="n">item_name</span><span class="p">):</span>
|
||||
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">sublevel_number</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по вложенному элементу с указанным текстом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элемента</span>
|
||||
<span class="sd"> sublevel_number: Уровень вложенности (1 или 2)</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика</span>
|
||||
<span class="sd"> locator: Локатор родительского элемента.</span>
|
||||
<span class="sd"> sublevel_number: Уровень вложенности (1 или 2).</span>
|
||||
<span class="sd"> item_name: Текст элемента для клика.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> ValueError: Если указан недопустимый уровень вложенности</span>
|
||||
<span class="sd"> ValueError: Если уровень вложенности не 1 или 2.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">root_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">NODE_ROOT</span><span class="p">)</span>
|
||||
<span class="n">children_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">NODE_CHILDREN</span><span class="p">)</span>
|
||||
|
||||
|
|
@ -2413,7 +2476,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Получает тексты всех элементов по указанному локатору.</p>
|
||||
<p>Возвращает тексты всех элементов по указанному локатору.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2432,10 +2495,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор для поиска элементов</p>
|
||||
<p>Локатор элементов или строка с CSS/XPath.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2450,17 +2514,18 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td><code>list</code></td> <td>
|
||||
<td>
|
||||
<code><span title="list">list</span>[<span title="str">str</span>]</code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Список текстов элементов</p>
|
||||
<p>Список текстов элементов.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2470,25 +2535,27 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\navbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">30</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Получает тексты всех элементов по указанному локатору.</span>
|
||||
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тексты всех элементов по указанному локатору.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор для поиска элементов</span>
|
||||
<span class="sd"> locator: Локатор элементов или строка с CSS/XPath.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: Список текстов элементов</span>
|
||||
<span class="sd"> Список текстов элементов.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">loc</span><span class="o">.</span><span class="n">all_inner_texts</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
|
|||
|
|
@ -642,6 +642,15 @@
|
|||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.table_component.TableComponent.get_row_locator" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
get_row_locator
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
|
|
@ -1763,6 +1772,15 @@
|
|||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.table_component.TableComponent.get_row_locator" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
get_row_locator
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
|
|
@ -1804,6 +1822,8 @@
|
|||
<a id="components.table_component"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль компонента таблицы. Содержит класс для работы с табличными данными.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1837,16 +1857,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseComponent (components.base_component.BaseComponent)" href="../base_component/#components.base_component.BaseComponent">BaseComponent</a></code></p>
|
||||
|
||||
|
||||
<p>Компонент таблицы.</p>
|
||||
<p>Предоставляет методы для взаимодействия с таблицами и проверки их состояния.
|
||||
Наследуется от BaseComponent.</p>
|
||||
<p>Компонент таблицы. Предоставляет методы для работы с табличными данными.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page: Page - экземпляр страницы Playwright</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1854,8 +1867,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\table_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 10</span>
|
||||
<span class="normal"> 11</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 11</span>
|
||||
<span class="normal"> 12</span>
|
||||
<span class="normal"> 13</span>
|
||||
<span class="normal"> 14</span>
|
||||
|
|
@ -1958,36 +1970,54 @@
|
|||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TableComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент таблицы.</span>
|
||||
|
||||
<span class="sd"> Предоставляет методы для взаимодействия с таблицами и проверки их состояния.</span>
|
||||
<span class="sd"> Наследуется от BaseComponent.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page: Page - экземпляр страницы Playwright</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TableComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент таблицы. Предоставляет методы для работы с табличными данными."""</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента таблицы.</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Page - экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">)</span> <span class="o">-></span> <span class="p">[]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Читает данные из таблицы, включая заголовки и содержимое ячеек.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_row_locator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="n">Locator</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает локатор строки по индексу.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
<span class="sd"> table_locator: Локатор таблицы.</span>
|
||||
<span class="sd"> row_index: Индекс строки.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: Двумерный список с данными таблицы (первый элемент - заголовки)</span>
|
||||
<span class="sd"> Локатор строки или None, если индекс вне диапазона.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">table_data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">table_locator</span><span class="p">)</span>
|
||||
|
||||
<span class="n">rows</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">row_index</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">rows</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
|
||||
<span class="k">return</span> <span class="n">rows</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">row_index</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="kc">None</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">[</span><span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Читает данные таблицы, включая заголовки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Двумерный список с данными таблицы.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table_data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Чтение заголовка таблицы</span>
|
||||
|
|
@ -1996,7 +2026,7 @@
|
|||
<span class="n">header_data</span> <span class="o">=</span> <span class="n">header_cell_text</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
||||
<span class="n">table_data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">header_data</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Чтение ячеек таблицы по строкам</span>
|
||||
<span class="c1"># Чтение ячеек таблицы</span>
|
||||
<span class="n">rows</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">rows</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
|
||||
<span class="n">row</span> <span class="o">=</span> <span class="n">rows</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
||||
|
|
@ -2010,59 +2040,48 @@
|
|||
<span class="k">return</span> <span class="n">table_data</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость первой строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если первая строка не видима</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">first_row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span><span class="o">.</span><span class="n">first</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">first_row</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="s2">"The first table row is not visible"</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость последней строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если последняя строка не видима</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">last_row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span><span class="o">.</span><span class="n">last</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">last_row</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="s2">"The last table row is not visible"</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">row_index</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет изменение цвета строки при наведении курсора.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет изменение цвета строки при наведении.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
<span class="sd"> row_index: Индекс проверяемой строки</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если цвет строки не изменился при наведении</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
<span class="sd"> row_index: Индекс проверяемой строки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">row_index</span><span class="p">)</span>
|
||||
|
||||
<span class="n">row</span><span class="o">.</span><span class="n">scroll_into_view_if_needed</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Получение элемента с подсветкой и его цвета</span>
|
||||
<span class="n">hover_element</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">".body-row-hover"</span><span class="p">)</span>
|
||||
<span class="n">initial_color</span> <span class="o">=</span> <span class="n">hover_element</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => window.getComputedStyle(el).backgroundColor"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Наведение на строку</span>
|
||||
<span class="n">row</span><span class="o">.</span><span class="n">hover</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">300</span><span class="p">)</span> <span class="c1"># 0.3 секунды</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">300</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Получение нового цвета</span>
|
||||
<span class="n">new_color</span> <span class="o">=</span> <span class="n">hover_element</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => window.getComputedStyle(el).backgroundColor"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">assert</span> <span class="n">initial_color</span> <span class="o">==</span> <span class="n">new_color</span><span class="p">,</span> <span class="s2">"Color of row did not change when hovering the cursor"</span>
|
||||
<span class="k">assert</span> <span class="n">initial_color</span> <span class="o">!=</span> <span class="n">new_color</span><span class="p">,</span> <span class="s2">"Color of row did not change when hovering the cursor"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
||||
|
|
@ -2089,7 +2108,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация компонента таблицы.</p>
|
||||
<p>Инициализирует компонент таблицы.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2112,7 +2131,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Page - экземпляр страницы Playwright</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2125,18 +2144,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\table_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента таблицы.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Page - экземпляр страницы Playwright</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2174,10 +2195,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор таблицы</p>
|
||||
<p>Локатор таблицы.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2188,51 +2210,24 @@
|
|||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="AssertionError">AssertionError</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если первая строка не видима</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\table_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость первой строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если первая строка не видима</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">first_row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span><span class="o">.</span><span class="n">first</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">first_row</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="s2">"The first table row is not visible"</span>
|
||||
|
|
@ -2272,10 +2267,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор таблицы</p>
|
||||
<p>Локатор таблицы.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2286,51 +2282,24 @@
|
|||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="AssertionError">AssertionError</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если последняя строка не видима</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\table_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">):</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span>
|
||||
<span class="normal">96</span>
|
||||
<span class="normal">97</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость последней строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если последняя строка не видима</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">last_row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span><span class="o">.</span><span class="n">last</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">last_row</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="s2">"The last table row is not visible"</span>
|
||||
|
|
@ -2351,7 +2320,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет изменение цвета строки при наведении курсора.</p>
|
||||
<p>Проверяет изменение цвета строки при наведении.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2370,10 +2339,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор таблицы</p>
|
||||
<p>Локатор таблицы.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2385,10 +2355,11 @@
|
|||
<code>row_index</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="int">int</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Индекс проверяемой строки</p>
|
||||
<p>Индекс проверяемой строки.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2399,43 +2370,9 @@
|
|||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="AssertionError">AssertionError</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если цвет строки не изменился при наведении</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\table_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 88</span>
|
||||
<span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
|
|
@ -2450,33 +2387,159 @@
|
|||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">row_index</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет изменение цвета строки при наведении курсора.</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет изменение цвета строки при наведении.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
<span class="sd"> row_index: Индекс проверяемой строки</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если цвет строки не изменился при наведении</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
<span class="sd"> row_index: Индекс проверяемой строки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
<span class="n">row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">row_index</span><span class="p">)</span>
|
||||
|
||||
<span class="n">row</span><span class="o">.</span><span class="n">scroll_into_view_if_needed</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Получение элемента с подсветкой и его цвета</span>
|
||||
<span class="n">hover_element</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">".body-row-hover"</span><span class="p">)</span>
|
||||
<span class="n">initial_color</span> <span class="o">=</span> <span class="n">hover_element</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => window.getComputedStyle(el).backgroundColor"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Наведение на строку</span>
|
||||
<span class="n">row</span><span class="o">.</span><span class="n">hover</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">300</span><span class="p">)</span> <span class="c1"># 0.3 секунды</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">300</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Получение нового цвета</span>
|
||||
<span class="n">new_color</span> <span class="o">=</span> <span class="n">hover_element</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="s2">"el => window.getComputedStyle(el).backgroundColor"</span><span class="p">)</span>
|
||||
<span class="k">assert</span> <span class="n">initial_color</span> <span class="o">!=</span> <span class="n">new_color</span><span class="p">,</span> <span class="s2">"Color of row did not change when hovering the cursor"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<span class="k">assert</span> <span class="n">initial_color</span> <span class="o">==</span> <span class="n">new_color</span><span class="p">,</span> <span class="s2">"Color of row did not change when hovering the cursor"</span>
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="components.table_component.TableComponent.get_row_locator" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">get_row_locator</span><span class="p">(</span><span class="n">table_locator</span><span class="p">,</span> <span class="n">row_index</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает локатор строки по индексу.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>table_locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор таблицы.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>row_index</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="int">int</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Индекс строки.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Locator">Locator</span> | None</code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор строки или None, если индекс вне диапазона.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\table_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_row_locator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="n">Locator</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает локатор строки по индексу.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> table_locator: Локатор таблицы.</span>
|
||||
<span class="sd"> row_index: Индекс строки.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Локатор строки или None, если индекс вне диапазона.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">table_locator</span><span class="p">)</span>
|
||||
|
||||
<span class="n">rows</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">row_index</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">rows</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
|
||||
<span class="k">return</span> <span class="n">rows</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">row_index</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="kc">None</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
@ -2494,7 +2557,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Читает данные из таблицы, включая заголовки и содержимое ячеек.</p>
|
||||
<p>Читает данные таблицы, включая заголовки.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2513,10 +2576,11 @@
|
|||
<code>locator</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span> | <span title="playwright.sync_api.Locator">Locator</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор таблицы</p>
|
||||
<p>Локатор таблицы.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2531,18 +2595,18 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td><code>list</code></td> <td>
|
||||
<code>[]</code>
|
||||
<td>
|
||||
<code><span title="list">list</span>[<span title="list">list</span>[<span title="str">str</span>]]</code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Двумерный список с данными таблицы (первый элемент - заголовки)</p>
|
||||
<p>Двумерный список с данными таблицы.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2552,22 +2616,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\table_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
|
|
@ -2582,17 +2631,32 @@
|
|||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">)</span> <span class="o">-></span> <span class="p">[]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Читает данные из таблицы, включая заголовки и содержимое ячеек.</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">)</span> <span class="o">-></span> <span class="nb">list</span><span class="p">[</span><span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Читает данные таблицы, включая заголовки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator: Локатор таблицы</span>
|
||||
<span class="sd"> locator: Локатор таблицы.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: Двумерный список с данными таблицы (первый элемент - заголовки)</span>
|
||||
<span class="sd"> Двумерный список с данными таблицы.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">table_data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="n">table_data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Чтение заголовка таблицы</span>
|
||||
|
|
@ -2601,7 +2665,7 @@
|
|||
<span class="n">header_data</span> <span class="o">=</span> <span class="n">header_cell_text</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span>
|
||||
<span class="n">table_data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">header_data</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Чтение ячеек таблицы по строкам</span>
|
||||
<span class="c1"># Чтение ячеек таблицы</span>
|
||||
<span class="n">rows</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s2">"//tbody/tr"</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">rows</span><span class="o">.</span><span class="n">count</span><span class="p">()):</span>
|
||||
<span class="n">row</span> <span class="o">=</span> <span class="n">rows</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
||||
|
|
|
|||
|
|
@ -675,9 +675,9 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.toolbar_component.ToolbarComponent.check_presence" class="md-nav__link">
|
||||
<a href="#components.toolbar_component.ToolbarComponent.check_toolbar_presence" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
check_presence
|
||||
check_toolbar_presence
|
||||
</span>
|
||||
</a>
|
||||
|
||||
|
|
@ -1820,9 +1820,9 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#components.toolbar_component.ToolbarComponent.check_presence" class="md-nav__link">
|
||||
<a href="#components.toolbar_component.ToolbarComponent.check_toolbar_presence" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
check_presence
|
||||
check_toolbar_presence
|
||||
</span>
|
||||
</a>
|
||||
|
||||
|
|
@ -1894,6 +1894,12 @@
|
|||
<a id="components.toolbar_component"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль компонента тулбара (панели инструментов).</p>
|
||||
<p>Содержит класс ToolbarComponent для работы с элементами тулбара:
|
||||
- Управление кнопками и их подсказками
|
||||
- Проверка видимости элементов
|
||||
- Взаимодействие с панелью инструментов</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1927,11 +1933,7 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseComponent (components.base_component.BaseComponent)" href="../base_component/#components.base_component.BaseComponent">BaseComponent</a></code></p>
|
||||
|
||||
|
||||
<p>Компонент тулбара (панели инструментов).</p>
|
||||
<p>Предоставляет методы для работы с панелью инструментов:
|
||||
- Добавление/управление кнопками
|
||||
- Проверка видимости элементов
|
||||
- Взаимодействие с элементами тулбара</p>
|
||||
<p>Компонент тулбара. Предоставляет методы для работы с панелью инструментов.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1988,15 +1990,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 10</span>
|
||||
<span class="normal"> 11</span>
|
||||
<span class="normal"> 12</span>
|
||||
<span class="normal"> 13</span>
|
||||
<span class="normal"> 14</span>
|
||||
<span class="normal"> 15</span>
|
||||
<span class="normal"> 16</span>
|
||||
<span class="normal"> 17</span>
|
||||
<span class="normal"> 18</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 18</span>
|
||||
<span class="normal"> 19</span>
|
||||
<span class="normal"> 20</span>
|
||||
<span class="normal"> 21</span>
|
||||
|
|
@ -2122,13 +2116,31 @@
|
|||
<span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ToolbarComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Компонент тулбара (панели инструментов).</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span>
|
||||
<span class="normal">147</span>
|
||||
<span class="normal">148</span>
|
||||
<span class="normal">149</span>
|
||||
<span class="normal">150</span>
|
||||
<span class="normal">151</span>
|
||||
<span class="normal">152</span>
|
||||
<span class="normal">153</span>
|
||||
<span class="normal">154</span>
|
||||
<span class="normal">155</span>
|
||||
<span class="normal">156</span>
|
||||
<span class="normal">157</span>
|
||||
<span class="normal">158</span>
|
||||
<span class="normal">159</span>
|
||||
<span class="normal">160</span>
|
||||
<span class="normal">161</span>
|
||||
<span class="normal">162</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ToolbarComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
|
||||
|
||||
|
||||
<span class="w"> </span><span class="sd">"""Компонент тулбара. Предоставляет методы для работы с панелью инструментов.</span>
|
||||
|
||||
|
||||
|
||||
<span class="sd"> Предоставляет методы для работы с панелью инструментов:</span>
|
||||
<span class="sd"> - Добавление/управление кнопками</span>
|
||||
<span class="sd"> - Проверка видимости элементов</span>
|
||||
<span class="sd"> - Взаимодействие с элементами тулбара</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page (Page): Экземпляр страницы Playwright</span>
|
||||
|
|
@ -2136,17 +2148,19 @@
|
|||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента тулбара."""</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент тулбара с указанным заголовком."""</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">buttons</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">add_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает заголовок тулбара.</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает новый заголовок тулбара.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> title (str): Новый заголовок тулбара</span>
|
||||
<span class="sd"> title (str): Новый заголовок</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">add_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
|
@ -2156,6 +2170,7 @@
|
|||
<span class="sd"> locator (Locator): Локатор кнопки</span>
|
||||
<span class="sd"> name (str): Уникальное имя кнопки</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TooltipButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">name</span><span class="p">))</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_button_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">TooltipButton</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
|
@ -2165,8 +2180,9 @@
|
|||
<span class="sd"> name (str): Имя кнопки</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> TooltipButton | None: Экземпляр кнопки или None если не найдена</span>
|
||||
<span class="sd"> TooltipButton | None: Найденная кнопка или None</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">button</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">button</span>
|
||||
|
|
@ -2181,6 +2197,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если кнопка не найдена</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2198,6 +2215,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если имя кнопки не поддерживается</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2215,17 +2233,19 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если имя кнопки не поддерживается</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">button</span><span class="o">.</span><span class="n">is_not_present</span><span class="p">(</span><span class="n">timeout</span><span class="o">=</span><span class="mi">1000</span><span class="p">)</span> <span class="c1"># Ожидание 1 секунда</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость тулбара.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> message (str): Сообщение об ошибке если тулбар не виден</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">ToolbarLocators</span><span class="o">.</span><span class="n">TITLE</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="n">message</span>
|
||||
|
||||
|
|
@ -2238,6 +2258,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если кнопка не найдена или не видна</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2251,8 +2272,9 @@
|
|||
<span class="sd"> tooltip (str): Ожидаемый текст подсказки</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если кнопка не найдена или текст подсказки не совпадает</span>
|
||||
<span class="sd"> AssertionError: Если текст подсказки не совпадает</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2283,17 +2305,19 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация компонента тулбара.</p>
|
||||
<p>Инициализирует компонент тулбара с указанным заголовком.</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонента тулбара."""</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компонент тулбара с указанным заголовком."""</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">buttons</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
|
@ -2366,20 +2390,22 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Добавляет кнопку в тулбар.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> locator (Locator): Локатор кнопки</span>
|
||||
<span class="sd"> name (str): Уникальное имя кнопки</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">TooltipButton</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">name</span><span class="p">))</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2398,7 +2424,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Устанавливает заголовок тулбара.</p>
|
||||
<p>Устанавливает новый заголовок тулбара.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2421,7 +2447,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Новый заголовок тулбара</p>
|
||||
<p>Новый заголовок</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2434,18 +2460,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает заголовок тулбара.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает новый заголовок тулбара.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> title (str): Новый заголовок тулбара</span>
|
||||
<span class="sd"> title (str): Новый заголовок</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2523,19 +2551,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span>
|
||||
<span class="normal">122</span>
|
||||
<span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
<span class="normal">125</span>
|
||||
<span class="normal">126</span>
|
||||
<span class="normal">127</span>
|
||||
<span class="normal">128</span>
|
||||
<span class="normal">129</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_button_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">133</span>
|
||||
<span class="normal">134</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span>
|
||||
<span class="normal">138</span>
|
||||
<span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_button_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие и видимость кнопки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
|
|
@ -2544,6 +2573,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если кнопка не найдена или не видна</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2630,7 +2660,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если кнопка не найдена или текст подсказки не совпадает</p>
|
||||
<p>Если текст подсказки не совпадает</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2640,20 +2670,21 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">131</span>
|
||||
<span class="normal">132</span>
|
||||
<span class="normal">133</span>
|
||||
<span class="normal">134</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span>
|
||||
<span class="normal">138</span>
|
||||
<span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_button_tooltip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">tooltip</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">148</span>
|
||||
<span class="normal">149</span>
|
||||
<span class="normal">150</span>
|
||||
<span class="normal">151</span>
|
||||
<span class="normal">152</span>
|
||||
<span class="normal">153</span>
|
||||
<span class="normal">154</span>
|
||||
<span class="normal">155</span>
|
||||
<span class="normal">156</span>
|
||||
<span class="normal">157</span>
|
||||
<span class="normal">158</span>
|
||||
<span class="normal">159</span>
|
||||
<span class="normal">160</span>
|
||||
<span class="normal">161</span>
|
||||
<span class="normal">162</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_button_tooltip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">tooltip</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет текст подсказки кнопки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
|
|
@ -2661,8 +2692,9 @@
|
|||
<span class="sd"> tooltip (str): Ожидаемый текст подсказки</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если кнопка не найдена или текст подсказки не совпадает</span>
|
||||
<span class="sd"> AssertionError: Если текст подсказки не совпадает</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2676,8 +2708,8 @@
|
|||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="components.toolbar_component.ToolbarComponent.check_presence" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">check_presence</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></code>
|
||||
<h3 id="components.toolbar_component.ToolbarComponent.check_toolbar_presence" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">check_toolbar_presence</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
|
@ -2720,19 +2752,21 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
<span class="normal">125</span>
|
||||
<span class="normal">126</span>
|
||||
<span class="normal">127</span>
|
||||
<span class="normal">128</span>
|
||||
<span class="normal">129</span>
|
||||
<span class="normal">130</span>
|
||||
<span class="normal">131</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_presence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость тулбара.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> message (str): Сообщение об ошибке если тулбар не виден</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">ToolbarLocators</span><span class="o">.</span><span class="n">TITLE</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">)</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_visible</span><span class="p">(),</span> <span class="n">message</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2811,19 +2845,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по кнопке тулбара.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
|
|
@ -2832,6 +2867,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если кнопка не найдена</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2902,7 +2938,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>TooltipButton | None: Экземпляр кнопки или None если не найдена</p>
|
||||
<p>TooltipButton | None: Найденная кнопка или None</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2912,27 +2948,29 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_button_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">TooltipButton</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_button_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">TooltipButton</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает кнопку по имени.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> name (str): Имя кнопки</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> TooltipButton | None: Экземпляр кнопки или None если не найдена</span>
|
||||
<span class="sd"> TooltipButton | None: Найденная кнопка или None</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">button</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">button</span>
|
||||
|
|
@ -3036,22 +3074,23 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span>
|
||||
<span class="normal">104</span>
|
||||
<span class="normal">105</span>
|
||||
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_button_not_present</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">105</span>
|
||||
<span class="normal">106</span>
|
||||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_button_not_present</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет отсутствие кнопки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
|
|
@ -3063,6 +3102,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если имя кнопки не поддерживается</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -3166,22 +3206,23 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>components\toolbar_component.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_button_present</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 87</span>
|
||||
<span class="normal"> 88</span>
|
||||
<span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_button_present</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие кнопки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
|
|
@ -3193,6 +3234,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если имя кнопки не поддерживается</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">AssertionError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported button name </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
|
||||
|
||||
<title>Форматирование кода в соответствии с PEP 8 и Google Python Style Guide - Документация тестов</title>
|
||||
<title>Add docstring - Документация тестов</title>
|
||||
|
||||
|
||||
|
||||
|
|
@ -59,11 +59,6 @@
|
|||
<label class="md-overlay" for="__drawer"></label>
|
||||
<div data-md-component="skip">
|
||||
|
||||
|
||||
<a href="#pep-8-google-python-style-guide" class="md-skip">
|
||||
Skip to content
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div data-md-component="announce">
|
||||
|
||||
|
|
@ -96,7 +91,7 @@
|
|||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
Форматирование кода в соответствии с PEP 8 и Google Python Style Guide
|
||||
Add docstring
|
||||
|
||||
</span>
|
||||
</div>
|
||||
|
|
@ -1586,25 +1581,6 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__title" for="__toc">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
Table of contents
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#_1" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
Требования к форматированию
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
|
@ -1619,42 +1595,20 @@
|
|||
|
||||
|
||||
|
||||
<h1 id="pep-8-google-python-style-guide">Форматирование кода в соответствии с PEP 8 и Google Python Style Guide</h1>
|
||||
<h2 id="_1">Требования к форматированию</h2>
|
||||
<ol>
|
||||
<li><strong>Добавление Docstring</strong>:</li>
|
||||
<li>Для класса: описание назначения и атрибутов в Google-формате на русском языке</li>
|
||||
<li>
|
||||
<p>Для методов: описание аргументов, возвращаемых значений и возможных исключений</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Сохранение комментариев</strong>:</p>
|
||||
</li>
|
||||
<li>Разделительные комментарии (например, <code>#actions:</code>, <code># assertions:</code>) остаются без изменений</li>
|
||||
<li>Закомментированный код сохраняется в оригинальном виде</li>
|
||||
<li>
|
||||
<p>Технические комментарии в методах не изменяются</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Перевод комментариев</strong>:</p>
|
||||
</li>
|
||||
<li>Разделительные комментарии переводятся (например, <code># Действия:</code>, <code># Проверки:</code>)</li>
|
||||
<li>Пояснительные комментарии к логике кода переводятся</li>
|
||||
<li>
|
||||
<p>Не переводятся:</p>
|
||||
<ul>
|
||||
<li>Технические сообщения в <code>assert</code>, <code>raise</code> и других системных конструкциях</li>
|
||||
<li>Закомментированный код</li>
|
||||
<li>Сообщения в логах и ошибках</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>Форматирование кода</strong>:</p>
|
||||
</li>
|
||||
<li>Соответствие PEP 8 (отступы, пробелы вокруг операторов)</li>
|
||||
<li>Сохранение исходной структуры кода</li>
|
||||
<li>Без изменений рабочей логики программы</li>
|
||||
</ol>
|
||||
<h1>Add docstring</h1>
|
||||
|
||||
<p><strong>Добавление Docstring</strong></p>
|
||||
<p>Изменить строго соблюдая требования:
|
||||
1. Добавить недостающие и улучшить имеющиеся docstrings язык русский.
|
||||
2. Сделать docstring более компактными, сохранив всю важную информацию.
|
||||
3. Ограничить в docstring длину строк 79 символами.
|
||||
4. Добавить docstring перед импортами.
|
||||
5. Должна быть пустая строка после каждого docstring.
|
||||
6. Сохранить все текущие комментарии.
|
||||
7. Запрещено изменять код (изменять только docstring).
|
||||
8. Не удалять пустые строки.
|
||||
9. В конце кода должна быть одна пустая строка.</p>
|
||||
<p>Вывести полный изменённый код и отчет о выполнении требований</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1702,6 +1702,10 @@
|
|||
<a id="data.constants"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль constants содержит настройки и константы приложения.</p>
|
||||
<p>Основной класс Constants предоставляет доступ к переменным окружения,
|
||||
используемым для аутентификации и других настроек.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1733,15 +1737,14 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Класс для хранения констант и переменных окружения.</p>
|
||||
<p>Содержит переменные, используемые для аутентификации и других настроек.
|
||||
Получает значения из переменных окружения.</p>
|
||||
<p>Хранит константы и переменные окружения.</p>
|
||||
<p>Получает значения из переменных окружения. Используется для аутентификации.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>login (str): Логин для аутентификации
|
||||
password (str): Пароль для аутентификации</p>
|
||||
<p>login (str): Логин для аутентификации.
|
||||
password (str): Пароль для аутентификации.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
|
@ -1751,12 +1754,7 @@ password (str): Пароль для аутентификации</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>data\constants.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
|
|
@ -1766,15 +1764,20 @@ password (str): Пароль для аутентификации</p>
|
|||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Constants</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для хранения констант и переменных окружения.</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Constants</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Хранит константы и переменные окружения.</span>
|
||||
|
||||
<span class="sd"> Содержит переменные, используемые для аутентификации и других настроек.</span>
|
||||
<span class="sd"> Получает значения из переменных окружения.</span>
|
||||
|
||||
<span class="sd"> Получает значения из переменных окружения. Используется для аутентификации.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> login (str): Логин для аутентификации</span>
|
||||
<span class="sd"> password (str): Пароль для аутентификации</span>
|
||||
<span class="sd"> login (str): Логин для аутентификации.</span>
|
||||
<span class="sd"> password (str): Пароль для аутентификации.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
|
|
|
|||
|
|
@ -1804,6 +1804,10 @@
|
|||
<a id="data.environment"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль environment содержит настройки окружения и URL-адресов.</p>
|
||||
<p>Класс Environment предоставляет методы для работы с окружением,
|
||||
токенами и URL-адресами API.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1835,18 +1839,14 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Класс для работы с окружением и URL-адресами.</p>
|
||||
<p>Содержит настройки для различных окружений (test, develop) и методы для работы с ними.
|
||||
Получает текущее окружение из переменных окружения системы.</p>
|
||||
<p>Управление окружением, URL-адресами и токенами.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>TEST (str): Константа для тестового окружения
|
||||
DEVELOP (str): Константа для окружения разработки
|
||||
URLS (dict): Словарь с базовыми URL для каждого окружения
|
||||
env (str): Текущее окружение
|
||||
access_token (str): Токен доступа</p>
|
||||
<details class="атрибуты-класса" open>
|
||||
<summary>Атрибуты класса</summary>
|
||||
<p>TEST (str): Константа для тестового окружения.
|
||||
DEVELOP (str): Константа для dev-окружения.
|
||||
URLS (Dict[str, str]): Словарь URL для разных окружений.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
|
@ -1856,13 +1856,7 @@ access_token (str): Токен доступа</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>data\environment.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
|
|
@ -1929,85 +1923,73 @@ access_token (str): Токен доступа</p>
|
|||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Environment</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с окружением и URL-адресами.</span>
|
||||
<span class="normal">77</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Environment</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Управление окружением, URL-адресами и токенами.</span>
|
||||
|
||||
<span class="sd"> Содержит настройки для различных окружений (test, develop) и методы для работы с ними.</span>
|
||||
<span class="sd"> Получает текущее окружение из переменных окружения системы.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> TEST (str): Константа для тестового окружения</span>
|
||||
<span class="sd"> DEVELOP (str): Константа для окружения разработки</span>
|
||||
<span class="sd"> URLS (dict): Словарь с базовыми URL для каждого окружения</span>
|
||||
<span class="sd"> env (str): Текущее окружение</span>
|
||||
<span class="sd"> access_token (str): Токен доступа</span>
|
||||
<span class="sd"> Атрибуты класса:</span>
|
||||
<span class="sd"> TEST (str): Константа для тестового окружения.</span>
|
||||
<span class="sd"> DEVELOP (str): Константа для dev-окружения.</span>
|
||||
<span class="sd"> URLS (Dict[str, str]): Словарь URL для разных окружений.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">TEST</span> <span class="o">=</span> <span class="s1">'test'</span>
|
||||
<span class="n">DEVELOP</span> <span class="o">=</span> <span class="s1">'develop'</span>
|
||||
<span class="n">TEST</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'test'</span>
|
||||
<span class="n">DEVELOP</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'develop'</span>
|
||||
|
||||
<span class="n">URLS</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="n">URLS</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="n">TEST</span><span class="p">:</span> <span class="s1">'http://192.168.2.76/'</span><span class="p">,</span>
|
||||
<span class="n">DEVELOP</span><span class="p">:</span> <span class="s1">'http://192.168.2.69/'</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация объекта окружения.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует объект окружения и токены."""</span>
|
||||
|
||||
<span class="sd"> Устанавливает окружение из переменной окружения ENV или по умолчанию TEST.</span>
|
||||
<span class="sd"> Инициализирует пустой access_token.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s1">'ENV'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">access_token</span> <span class="o">=</span> <span class="s2">""</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s1">'ENV'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">access_token</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span>
|
||||
<span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_base_url</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_base_url</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает базовый URL для текущего окружения.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Базовый URL с учётом особенностей окружения</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если значение переменной ENV неизвестно</span>
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> str: Базовый URL с путем для теста или без него.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"e-nms-ui/"</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">]</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown value of ENV variable </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_request_url</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_request_url</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает URL для API-запросов.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: URL для запросов</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если значение переменной ENV неизвестно</span>
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> str: URL для API-запросов.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">]</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown value of ENV variable </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">set_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">set_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает токен доступа.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> token (str): Новый токен доступа</span>
|
||||
<span class="sd"> Аргументы:</span>
|
||||
<span class="sd"> token (str): Токен для установки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">token</span> <span class="o">=</span> <span class="n">token</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает текущий токен доступа.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Текущий токен доступа</span>
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> str: Текущий токен доступа.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2035,15 +2017,12 @@ access_token (str): Токен доступа</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация объекта окружения.</p>
|
||||
<p>Устанавливает окружение из переменной окружения ENV или по умолчанию TEST.
|
||||
Инициализирует пустой access_token.</p>
|
||||
<p>Инициализирует объект окружения и токены.</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>data\environment.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
|
|
@ -2051,18 +2030,15 @@ access_token (str): Токен доступа</p>
|
|||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация объекта окружения.</span>
|
||||
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует объект окружения и токены."""</span>
|
||||
|
||||
<span class="sd"> Устанавливает окружение из переменной окружения ENV или по умолчанию TEST.</span>
|
||||
<span class="sd"> Инициализирует пустой access_token.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s1">'ENV'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">access_token</span> <span class="o">=</span> <span class="s2">""</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s1">'ENV'</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">access_token</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">token</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span>
|
||||
<span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
@ -2083,42 +2059,27 @@ access_token (str): Токен доступа</p>
|
|||
<p>Возвращает текущий токен доступа.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td><code>str</code></td> <td>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Текущий токен доступа</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<details class="возвращает" open>
|
||||
<summary>Возвращает</summary>
|
||||
<p>str: Текущий токен доступа.</p>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>data\environment.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">74</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="normal">77</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает текущий токен доступа.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Текущий токен доступа</span>
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> str: Текущий токен доступа.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2140,54 +2101,15 @@ access_token (str): Токен доступа</p>
|
|||
<p>Возвращает базовый URL для текущего окружения.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td><code>str</code></td> <td>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Базовый URL с учётом особенностей окружения</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="Exception">Exception</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если значение переменной ENV неизвестно</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<details class="возвращает" open>
|
||||
<summary>Возвращает</summary>
|
||||
<p>str: Базовый URL с путем для теста или без него.</p>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>data\environment.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">38</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
|
|
@ -2197,18 +2119,13 @@ access_token (str): Токен доступа</p>
|
|||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_base_url</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="normal">48</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_base_url</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает базовый URL для текущего окружения.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Базовый URL с учётом особенностей окружения</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если значение переменной ENV неизвестно</span>
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> str: Базовый URL с путем для теста или без него.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">TEST</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"e-nms-ui/"</span>
|
||||
|
|
@ -2234,73 +2151,29 @@ access_token (str): Токен доступа</p>
|
|||
<p>Возвращает URL для API-запросов.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td><code>str</code></td> <td>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>URL для запросов</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="Exception">Exception</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если значение переменной ENV неизвестно</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<details class="возвращает" open>
|
||||
<summary>Возвращает</summary>
|
||||
<p>str: URL для API-запросов.</p>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>data\environment.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">53</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_request_url</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_request_url</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает URL для API-запросов.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: URL для запросов</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если значение переменной ENV неизвестно</span>
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> str: URL для API-запросов.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">URLS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">]</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown value of ENV variable </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||||
|
|
@ -2324,51 +2197,27 @@ access_token (str): Токен доступа</p>
|
|||
<p>Устанавливает токен доступа.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>token</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Новый токен доступа</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<details class="аргументы" open>
|
||||
<summary>Аргументы</summary>
|
||||
<p>token (str): Токен для установки.</p>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>data\environment.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">66</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">set_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">):</span>
|
||||
<span class="normal">68</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">set_access_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает токен доступа.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> token (str): Новый токен доступа</span>
|
||||
<span class="sd"> Аргументы:</span>
|
||||
<span class="sd"> token (str): Токен для установки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">token</span> <span class="o">=</span> <span class="n">token</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1684,6 +1684,9 @@
|
|||
<a id="data.roles_dict"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль roles_dict содержит словарь соответствия ролей.</p>
|
||||
<p>Содержит сопоставление системных названий ролей с их отображаемыми названиями.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1732,6 +1732,10 @@
|
|||
<a id="elements.button_element"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль button_element содержит класс для работы с кнопками на странице.</p>
|
||||
<p>Класс Button наследует базовый функционал BaseElement и предоставляет
|
||||
специфичные методы для работы с элементами типа 'кнопка'.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1765,8 +1769,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseElement (elements.base_element.BaseElement)" href="../base_element/#elements.base_element.BaseElement">BaseElement</a></code></p>
|
||||
|
||||
|
||||
<p>Класс для работы с элементами типа 'кнопка' на странице.</p>
|
||||
<p>Наследует функциональность базового элемента и добавляет специфичные для кнопок методы.</p>
|
||||
<p>Класс для работы с кнопками на странице.</p>
|
||||
<p>Наследует функциональность BaseElement и добавляет специфичные
|
||||
для кнопок методы и проверки.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1776,11 +1781,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\button_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
|
|
@ -1789,19 +1790,27 @@
|
|||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Button</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с элементами типа 'кнопка' на странице.</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Button</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с кнопками на странице.</span>
|
||||
|
||||
<span class="sd"> Наследует функциональность базового элемента и добавляет специфичные для кнопок методы.</span>
|
||||
<span class="sd"> Наследует функциональность BaseElement и добавляет специфичные</span>
|
||||
<span class="sd"> для кнопок методы и проверки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">type_of</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента - 'кнопка'.</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента ('кнопка').</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Строка с типом элемента.</span>
|
||||
<span class="sd"> str: Тип элемента - 'кнопка'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="s2">"button"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -1832,25 +1841,25 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает тип элемента - 'кнопка'.</p>
|
||||
<p>Возвращает тип элемента ('кнопка').</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<td><code>str</code></td> <td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Строка с типом элемента.</p>
|
||||
<p>Тип элемента - 'кнопка'.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -1786,6 +1786,10 @@
|
|||
<a id="elements.checkbox_element"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль checkbox_element содержит класс для работы с чекбоксами.</p>
|
||||
<p>Класс Checkbox наследует базовый функционал BaseElement и добавляет
|
||||
специфичные методы для работы с элементами типа 'чекбокс'.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1819,8 +1823,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseElement (elements.base_element.BaseElement)" href="../base_element/#elements.base_element.BaseElement">BaseElement</a></code></p>
|
||||
|
||||
|
||||
<p>Класс для работы с элементами типа 'чекбокс' на странице.</p>
|
||||
<p>Наследует функциональность базового элемента и добавляет специфичные для чекбоксов методы.</p>
|
||||
<p>Класс для работы с чекбоксами на странице.</p>
|
||||
<p>Наследует функциональность BaseElement и добавляет методы для
|
||||
взаимодействия с чекбоксами и проверки их состояния.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1830,13 +1835,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\checkbox_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
|
|
@ -1864,30 +1863,45 @@
|
|||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Checkbox</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с элементами типа 'чекбокс' на странице.</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Checkbox</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с чекбоксами на странице.</span>
|
||||
|
||||
<span class="sd"> Наследует функциональность базового элемента и добавляет специфичные для чекбоксов методы.</span>
|
||||
<span class="sd"> Наследует функциональность BaseElement и добавляет методы для</span>
|
||||
<span class="sd"> взаимодействия с чекбоксами и проверки их состояния.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">type_of</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента - 'чекбокс'.</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента ('чекбокс').</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Строка с типом элемента.</span>
|
||||
<span class="sd"> str: Тип элемента - 'чекбокс'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="s2">"checkbox"</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает чекбокс в отмеченное состояние."""</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking checkbox "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="w"> </span><span class="sd">"""Отмечает чекбокс (устанавливает галочку)."""</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Checking checkbox '</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">check</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">uncheck</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Снимает отметку с чекбокса."""</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Unchecking checkbox "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="w"> </span><span class="sd">"""Снимает отметку с чекбокса (убирает галочку)."""</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unchecking checkbox '</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">uncheck</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
|
|
@ -1895,9 +1909,10 @@
|
|||
<span class="w"> </span><span class="sd">"""Проверяет, отмечен ли чекбокс.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> True, если чекбокс отмечен, иначе False.</span>
|
||||
<span class="sd"> bool: True если отмечен, False если нет.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking if checkbox "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">" is checked'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Checking if checkbox '</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">' is checked"</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">is_checked</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -1928,25 +1943,25 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает тип элемента - 'чекбокс'.</p>
|
||||
<p>Возвращает тип элемента ('чекбокс').</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<td><code>str</code></td> <td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Строка с типом элемента.</p>
|
||||
<p>Тип элемента - 'чекбокс'.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -1970,17 +1985,19 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Устанавливает чекбокс в отмеченное состояние.</p>
|
||||
<p>Отмечает чекбокс (устанавливает галочку).</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\checkbox_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Устанавливает чекбокс в отмеченное состояние."""</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking checkbox "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Отмечает чекбокс (устанавливает галочку)."""</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Checking checkbox '</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">check</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2006,18 +2023,18 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<td><code>bool</code></td> <td>
|
||||
<code><span title="bool">bool</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True, если чекбокс отмечен, иначе False.</p>
|
||||
<p>True если отмечен, False если нет.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2027,20 +2044,22 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\checkbox_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_checked</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">is_checked</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет, отмечен ли чекбокс.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> True, если чекбокс отмечен, иначе False.</span>
|
||||
<span class="sd"> bool: True если отмечен, False если нет.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking if checkbox "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">" is checked'</span><span class="p">)</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Checking if checkbox '</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">' is checked"</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">is_checked</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2059,17 +2078,19 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Снимает отметку с чекбокса.</p>
|
||||
<p>Снимает отметку с чекбокса (убирает галочку).</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\checkbox_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">uncheck</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Снимает отметку с чекбокса."""</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Unchecking checkbox "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">uncheck</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Снимает отметку с чекбокса (убирает галочку)."""</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unchecking checkbox '</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">uncheck</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1768,6 +1768,10 @@
|
|||
<a id="elements.dropdown_list_element"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль dropdown_list_element содержит класс для работы с выпадающими списками.</p>
|
||||
<p>Класс DropdownList наследует базовый функционал BaseElement и добавляет
|
||||
методы для взаимодействия с выпадающими списками на странице.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1801,8 +1805,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseElement (elements.base_element.BaseElement)" href="../base_element/#elements.base_element.BaseElement">BaseElement</a></code></p>
|
||||
|
||||
|
||||
<p>Класс для работы с выпадающими списками на странице.</p>
|
||||
<p>Наследует функциональность базового элемента и добавляет специфичные для dropdown-списков методы.</p>
|
||||
<p>Класс для работы с выпадающими списками.</p>
|
||||
<p>Наследует функциональность BaseElement и добавляет специфичные
|
||||
методы для выбора и проверки элементов списка.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1812,11 +1817,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\dropdown_list_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
|
|
@ -1850,41 +1851,53 @@
|
|||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">DropdownList</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с выпадающими списками на странице.</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">DropdownList</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с выпадающими списками.</span>
|
||||
|
||||
<span class="sd"> Наследует функциональность базового элемента и добавляет специфичные для dropdown-списков методы.</span>
|
||||
<span class="sd"> Наследует функциональность BaseElement и добавляет специфичные</span>
|
||||
<span class="sd"> методы для выбора и проверки элементов списка.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">type_of</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента - 'выпадающий список'.</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента ('выпадающий список').</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Строка с типом элемента.</span>
|
||||
<span class="sd"> str: Тип элемента - 'выпадающий список'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="s2">"dropdown list"</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_item_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает на элемент списка с указанным текстом.</span>
|
||||
<span class="w"> </span><span class="sd">"""Выбирает элемент списка по указанному тексту.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: Текст элемента, который нужно выбрать.</span>
|
||||
<span class="sd"> text (str): Текст элемента для выбора.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Selecting item with text "</span><span class="si">{</span><span class="n">text</span><span class="si">}</span><span class="s1">" from dropdown "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"listitem"</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_item_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие и доступность элемента с указанным текстом.</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие и доступность элемента списка.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: Текст элемента, который нужно проверить.</span>
|
||||
<span class="sd"> text (str): Текст элемента для проверки.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если элемент отсутствует или недоступен.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking item with text "</span><span class="si">{</span><span class="n">text</span><span class="si">}</span><span class="s1">" in dropdown "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="n">enabled</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"listitem"</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">is_enabled</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">enabled</span><span class="p">:</span>
|
||||
|
|
@ -1918,25 +1931,25 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает тип элемента - 'выпадающий список'.</p>
|
||||
<p>Возвращает тип элемента ('выпадающий список').</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<td><code>str</code></td> <td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Строка с типом элемента.</p>
|
||||
<p>Тип элемента - 'выпадающий список'.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -1960,7 +1973,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет наличие и доступность элемента с указанным текстом.</p>
|
||||
<p>Проверяет наличие и доступность элемента списка.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1983,7 +1996,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Текст элемента, который нужно проверить.</p>
|
||||
<p>Текст элемента для проверки.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2019,27 +2032,29 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\dropdown_list_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_item_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие и доступность элемента с указанным текстом.</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_item_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие и доступность элемента списка.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: Текст элемента, который нужно проверить.</span>
|
||||
<span class="sd"> text (str): Текст элемента для проверки.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если элемент отсутствует или недоступен.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking item with text "</span><span class="si">{</span><span class="n">text</span><span class="si">}</span><span class="s1">" in dropdown "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="n">enabled</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"listitem"</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">is_enabled</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">enabled</span><span class="p">:</span>
|
||||
|
|
@ -2061,7 +2076,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Кликает на элемент списка с указанным текстом.</p>
|
||||
<p>Выбирает элемент списка по указанному тексту.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2084,7 +2099,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Текст элемента, который нужно выбрать.</p>
|
||||
<p>Текст элемента для выбора.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2097,19 +2112,21 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\dropdown_list_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_item_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает на элемент списка с указанным текстом.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_item_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Выбирает элемент списка по указанному тексту.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> text: Текст элемента, который нужно выбрать.</span>
|
||||
<span class="sd"> text (str): Текст элемента для выбора.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Selecting item with text "</span><span class="si">{</span><span class="n">text</span><span class="si">}</span><span class="s1">" from dropdown "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">"listitem"</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="n">text</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
|
|||
|
|
@ -1732,6 +1732,10 @@
|
|||
<a id="elements.text_element"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль text_element содержит класс для работы с текстовыми элементами.</p>
|
||||
<p>Класс Text наследует базовый функционал BaseElement и предоставляет
|
||||
методы для работы с текстовыми элементами на странице.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1765,8 +1769,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseElement (elements.base_element.BaseElement)" href="../base_element/#elements.base_element.BaseElement">BaseElement</a></code></p>
|
||||
|
||||
|
||||
<p>Класс для работы с текстовыми элементами на странице.</p>
|
||||
<p>Наследует функциональность базового элемента и добавляет специфичные для текста методы.</p>
|
||||
<p>Класс для работы с текстовыми элементами страницы.</p>
|
||||
<p>Наследует функциональность BaseElement и добавляет специфичные
|
||||
методы для взаимодействия с текстовыми элементами.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1776,12 +1781,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\text_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
|
|
@ -1789,19 +1789,28 @@
|
|||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Text</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с текстовыми элементами на странице.</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Text</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с текстовыми элементами страницы.</span>
|
||||
|
||||
<span class="sd"> Наследует функциональность базового элемента и добавляет специфичные для текста методы.</span>
|
||||
<span class="sd"> Наследует функциональность BaseElement и добавляет специфичные</span>
|
||||
<span class="sd"> методы для взаимодействия с текстовыми элементами.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">type_of</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента - 'текст'.</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента ('текст').</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Строка с типом элемента.</span>
|
||||
<span class="sd"> str: Тип элемента - 'текст'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="s2">"text"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -1832,25 +1841,25 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает тип элемента - 'текст'.</p>
|
||||
<p>Возвращает тип элемента ('текст').</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<td><code>str</code></td> <td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Строка с типом элемента.</p>
|
||||
<p>Тип элемента - 'текст'.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
|
|
@ -1804,6 +1804,10 @@
|
|||
<a id="elements.text_input_element"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль text_input_element содержит класс для работы с текстовыми полями ввода.</p>
|
||||
<p>Класс TextInput наследует базовый функционал BaseElement и предоставляет
|
||||
методы для взаимодействия с текстовыми полями ввода на странице.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1837,8 +1841,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseElement (elements.base_element.BaseElement)" href="../base_element/#elements.base_element.BaseElement">BaseElement</a></code></p>
|
||||
|
||||
|
||||
<p>Класс для работы с текстовыми полями ввода на странице.</p>
|
||||
<p>Наследует функциональность базового элемента и добавляет специфичные для текстовых полей методы.</p>
|
||||
<p>Класс для работы с текстовыми полями ввода.</p>
|
||||
<p>Наследует функциональность BaseElement и добавляет методы
|
||||
для ввода, очистки и проверки текстовых полей.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1848,13 +1853,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\text_input_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
|
|
@ -1899,56 +1898,74 @@
|
|||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TextInput</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с текстовыми полями ввода на странице.</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TextInput</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с текстовыми полями ввода.</span>
|
||||
|
||||
<span class="sd"> Наследует функциональность базового элемента и добавляет специфичные для текстовых полей методы.</span>
|
||||
<span class="sd"> Наследует функциональность BaseElement и добавляет методы</span>
|
||||
<span class="sd"> для ввода, очистки и проверки текстовых полей.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">type_of</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента - 'текстовое поле ввода'.</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента ('текстовое поле ввода').</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Строка с типом элемента.</span>
|
||||
<span class="sd"> str: Тип элемента - 'текстовое поле ввода'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="s2">"text input"</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_input_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Получает текущее значение текстового поля.</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает текущее значение поля ввода.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Текущее значение поля ввода.</span>
|
||||
<span class="sd"> str: Текущее значение в поле.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Getting value from text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">input_value</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">input_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Вводит указанное значение в текстовое поле.</span>
|
||||
<span class="w"> </span><span class="sd">"""Вводит указанное значение в поле.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> value: Значение для ввода.</span>
|
||||
<span class="sd"> value (str): Значение для ввода.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Inputting value "</span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">" to text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Очищает содержимое текстового поля."""</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Clearing text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">press</span><span class="p">(</span><span class="s1">'Control+A'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">press</span><span class="p">(</span><span class="s1">'Backspace'</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_empty_input</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет, что текстовое поле пустое.</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет, что поле ввода пустое.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> msg: Сообщение об ошибке при неудачной проверке.</span>
|
||||
<span class="sd"> msg (str): Сообщение об ошибке при неудачной проверке.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если поле не пустое.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking that text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">" is empty'</span><span class="p">)</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_empty</span><span class="p">(),</span> <span class="n">msg</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -1980,25 +1997,25 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает тип элемента - 'текстовое поле ввода'.</p>
|
||||
<p>Возвращает тип элемента ('текстовое поле ввода').</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<td><code>str</code></td> <td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Строка с типом элемента.</p>
|
||||
<p>Тип элемента - 'текстовое поле ввода'.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2022,7 +2039,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет, что текстовое поле пустое.</p>
|
||||
<p>Проверяет, что поле ввода пустое.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2081,25 +2098,27 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\text_input_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_empty_input</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет, что текстовое поле пустое.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_empty_input</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет, что поле ввода пустое.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> msg: Сообщение об ошибке при неудачной проверке.</span>
|
||||
<span class="sd"> msg (str): Сообщение об ошибке при неудачной проверке.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если поле не пустое.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Checking that text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">" is empty'</span><span class="p">)</span>
|
||||
<span class="n">expect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="p">)</span><span class="o">.</span><span class="n">to_be_empty</span><span class="p">(),</span> <span class="n">msg</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2124,12 +2143,14 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\text_input_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Очищает содержимое текстового поля."""</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Clearing text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">press</span><span class="p">(</span><span class="s1">'Control+A'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">press</span><span class="p">(</span><span class="s1">'Backspace'</span><span class="p">)</span>
|
||||
|
|
@ -2150,25 +2171,25 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Получает текущее значение текстового поля.</p>
|
||||
<p>Возвращает текущее значение поля ввода.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Name</th> <th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<td><code>str</code></td> <td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Текущее значение поля ввода.</p>
|
||||
<p>Текущее значение в поле.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2178,19 +2199,21 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\text_input_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_input_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Получает текущее значение текстового поля.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_input_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает текущее значение поля ввода.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Текущее значение поля ввода.</span>
|
||||
<span class="sd"> str: Текущее значение в поле.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Getting value from text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">input_value</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2210,7 +2233,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Вводит указанное значение в текстовое поле.</p>
|
||||
<p>Вводит указанное значение в поле.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2246,19 +2269,21 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\text_input_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">input_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Вводит указанное значение в текстовое поле.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">input_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Вводит указанное значение в поле.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> value: Значение для ввода.</span>
|
||||
<span class="sd"> value (str): Значение для ввода.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Inputting value "</span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">" to text input "</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s1">"'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
|
|||
|
|
@ -1750,6 +1750,10 @@
|
|||
<a id="elements.tooltip_button_element"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль tooltip_button_element содержит класс для работы с кнопками с подсказками.</p>
|
||||
<p>Класс TooltipButton наследует базовый функционал BaseElement и добавляет
|
||||
методы для проверки всплывающих подсказок у кнопок.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1783,8 +1787,9 @@
|
|||
Bases: <code><a class="autorefs autorefs-internal" title="BaseElement (elements.base_element.BaseElement)" href="../base_element/#elements.base_element.BaseElement">BaseElement</a></code></p>
|
||||
|
||||
|
||||
<p>Класс элемента кнопки с всплывающей подсказкой.</p>
|
||||
<p>Наследует функциональность базового элемента и добавляет методы для работы с подсказками.</p>
|
||||
<p>Класс для работы с кнопками, имеющими всплывающие подсказки.</p>
|
||||
<p>Наследует функциональность BaseElement и добавляет методы
|
||||
для взаимодействия с подсказками кнопок.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1794,12 +1799,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\tooltip_button_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
|
|
@ -1830,31 +1830,42 @@
|
|||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TooltipButton</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс элемента кнопки с всплывающей подсказкой.</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TooltipButton</span><span class="p">(</span><span class="n">BaseElement</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с кнопками, имеющими всплывающие подсказки.</span>
|
||||
|
||||
<span class="sd"> Наследует функциональность базового элемента и добавляет методы для работы с подсказками.</span>
|
||||
<span class="sd"> Наследует функциональность BaseElement и добавляет методы</span>
|
||||
<span class="sd"> для взаимодействия с подсказками кнопок.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nd">@property</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">type_of</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента.</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает тип элемента ('tooltip_button').</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> str: Тип элемента ('tooltip_button')</span>
|
||||
<span class="sd"> str: Тип элемента - кнопка с подсказкой.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="s2">"tooltip_button"</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_tooltip_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tooltip_locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">expected_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет текст всплывающей подсказки.</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет соответствие текста всплывающей подсказки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> tooltip_locator (str): Локатор элемента подсказки</span>
|
||||
<span class="sd"> expected_text (str): Ожидаемый текст подсказки</span>
|
||||
<span class="sd"> tooltip_locator (str): Локатор элемента подсказки.</span>
|
||||
<span class="sd"> expected_text (str): Ожидаемый текст подсказки.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если текст подсказки не соответствует ожидаемому</span>
|
||||
<span class="sd"> AssertionError: Если текст подсказки не соответствует ожидаемому.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="c1"># Наведение на элемент для отображения подсказки</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">hover</span><span class="p">()</span>
|
||||
|
||||
|
|
@ -1896,7 +1907,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает тип элемента.</p>
|
||||
<p>Возвращает тип элемента ('tooltip_button').</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
|
|
@ -1914,7 +1925,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Тип элемента ('tooltip_button')</p>
|
||||
<p>Тип элемента - кнопка с подсказкой.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -1938,7 +1949,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет текст всплывающей подсказки.</p>
|
||||
<p>Проверяет соответствие текста всплывающей подсказки.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1961,7 +1972,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Локатор элемента подсказки</p>
|
||||
<p>Локатор элемента подсказки.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -1977,7 +1988,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Ожидаемый текст подсказки</p>
|
||||
<p>Ожидаемый текст подсказки.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2003,7 +2014,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если текст подсказки не соответствует ожидаемому</p>
|
||||
<p>Если текст подсказки не соответствует ожидаемому.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2013,14 +2024,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>elements\tooltip_button_element.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
|
|
@ -2034,16 +2038,25 @@
|
|||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_tooltip_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tooltip_locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">expected_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет текст всплывающей подсказки.</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_tooltip_with_text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tooltip_locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">expected_text</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет соответствие текста всплывающей подсказки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> tooltip_locator (str): Локатор элемента подсказки</span>
|
||||
<span class="sd"> expected_text (str): Ожидаемый текст подсказки</span>
|
||||
<span class="sd"> tooltip_locator (str): Локатор элемента подсказки.</span>
|
||||
<span class="sd"> expected_text (str): Ожидаемый текст подсказки.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если текст подсказки не соответствует ожидаемому</span>
|
||||
<span class="sd"> AssertionError: Если текст подсказки не соответствует ожидаемому.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="c1"># Наведение на элемент для отображения подсказки</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">locator</span><span class="o">.</span><span class="n">hover</span><span class="p">()</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -1810,8 +1810,9 @@
|
|||
<a id="fixtures.pages"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль для работы с Playwright в тестах pytest.</p>
|
||||
<p>Содержит фикстуры и вспомогательные функции для управления браузером.</p>
|
||||
<p>Модуль pages содержит фикстуры и функции для работы с Playwright.</p>
|
||||
<p>Предоставляет инструменты для управления браузером, контекстами и страницами
|
||||
в тестах pytest, включая настройку параметров запуска.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1842,7 +1843,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Фикстура для создания и управления экземпляром браузера.</p>
|
||||
<p>Фикстура для управления экземпляром браузера.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1861,6 +1862,7 @@
|
|||
<code>request</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="_pytest.fixtures.FixtureRequest">FixtureRequest</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -1913,7 +1915,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр страницы для использования в тестах.</p>
|
||||
<p>Страница для использования в тестах.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -1923,20 +1925,12 @@
|
|||
|
||||
<details class="note" open>
|
||||
<summary>Note</summary>
|
||||
<p>Автоматически закрывает браузер и контексты после завершения тестов.</p>
|
||||
<p>Автоматически закрывает браузер после тестов.</p>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>fixtures\pages.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
|
|
@ -1970,9 +1964,18 @@
|
|||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s1">'class'</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">browser</span><span class="p">(</span><span class="n">request</span><span class="p">)</span> <span class="o">-></span> <span class="n">Page</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для создания и управления экземпляром браузера.</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s1">'class'</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">browser</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-></span> <span class="n">Page</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для управления экземпляром браузера.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> request: Объект запроса pytest для доступа к конфигурации.</span>
|
||||
|
|
@ -1981,11 +1984,12 @@
|
|||
<span class="sd"> Page: Экземпляр страницы браузера.</span>
|
||||
|
||||
<span class="sd"> Yields:</span>
|
||||
<span class="sd"> Page: Экземпляр страницы для использования в тестах.</span>
|
||||
<span class="sd"> Page: Страница для использования в тестах.</span>
|
||||
|
||||
<span class="sd"> Note:</span>
|
||||
<span class="sd"> Автоматически закрывает браузер и контексты после завершения тестов.</span>
|
||||
<span class="sd"> Автоматически закрывает браузер после тестов.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">playwright</span> <span class="o">=</span> <span class="n">sync_playwright</span><span class="p">()</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Выбор браузера на основе параметра командной строки</span>
|
||||
|
|
@ -2049,6 +2053,7 @@
|
|||
<code>playwright</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Playwright">Playwright</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -2064,10 +2069,11 @@
|
|||
<code>request</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="_pytest.fixtures.FixtureRequest">FixtureRequest</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Объект запроса pytest для доступа к конфигурации.</p>
|
||||
<p>Объект запроса pytest.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2093,7 +2099,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр Chrome браузера.</p>
|
||||
<p>Экземпляр Chrome.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2103,30 +2109,32 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>fixtures\pages.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">105</span>
|
||||
<span class="normal">106</span>
|
||||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_chrome_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">)</span> <span class="o">-></span> <span class="n">Browser</span><span class="p">:</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span>
|
||||
<span class="normal">122</span>
|
||||
<span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
<span class="normal">125</span>
|
||||
<span class="normal">126</span>
|
||||
<span class="normal">127</span>
|
||||
<span class="normal">128</span>
|
||||
<span class="normal">129</span>
|
||||
<span class="normal">130</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_chrome_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">:</span> <span class="n">Playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-></span> <span class="n">Browser</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создает и возвращает экземпляр Chrome браузера.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> playwright: Экземпляр Playwright.</span>
|
||||
<span class="sd"> request: Объект запроса pytest для доступа к конфигурации.</span>
|
||||
<span class="sd"> request: Объект запроса pytest.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Browser: Экземпляр Chrome браузера.</span>
|
||||
<span class="sd"> Browser: Экземпляр Chrome.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">playwright</span><span class="o">.</span><span class="n">chromium</span><span class="o">.</span><span class="n">launch</span><span class="p">(</span>
|
||||
<span class="n">headless</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">"h"</span><span class="p">),</span>
|
||||
<span class="n">slow_mo</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">"slow"</span><span class="p">),</span>
|
||||
|
|
@ -2168,6 +2176,7 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Browser">Browser</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -2183,10 +2192,11 @@
|
|||
<code>request</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="_pytest.fixtures.FixtureRequest">FixtureRequest</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Объект запроса pytest для доступа к конфигурации.</p>
|
||||
<p>Объект запроса pytest.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2198,6 +2208,7 @@
|
|||
<code>start</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="str">str</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -2227,7 +2238,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Настроенный контекст браузера.</p>
|
||||
<p>Настроенный контекст.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2237,19 +2248,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>fixtures\pages.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">138</span>
|
||||
<span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span>
|
||||
<span class="normal">147</span>
|
||||
<span class="normal">148</span>
|
||||
<span class="normal">149</span>
|
||||
<span class="normal">150</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">150</span>
|
||||
<span class="normal">151</span>
|
||||
<span class="normal">152</span>
|
||||
<span class="normal">153</span>
|
||||
|
|
@ -2271,17 +2270,31 @@
|
|||
<span class="normal">169</span>
|
||||
<span class="normal">170</span>
|
||||
<span class="normal">171</span>
|
||||
<span class="normal">172</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_context</span><span class="p">(</span><span class="n">browser</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="n">start</span><span class="p">)</span> <span class="o">-></span> <span class="n">BrowserContext</span><span class="p">:</span>
|
||||
<span class="normal">172</span>
|
||||
<span class="normal">173</span>
|
||||
<span class="normal">174</span>
|
||||
<span class="normal">175</span>
|
||||
<span class="normal">176</span>
|
||||
<span class="normal">177</span>
|
||||
<span class="normal">178</span>
|
||||
<span class="normal">179</span>
|
||||
<span class="normal">180</span>
|
||||
<span class="normal">181</span>
|
||||
<span class="normal">182</span>
|
||||
<span class="normal">183</span>
|
||||
<span class="normal">184</span>
|
||||
<span class="normal">185</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_context</span><span class="p">(</span><span class="n">browser</span><span class="p">:</span> <span class="n">Browser</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">BrowserContext</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создает и настраивает контекст браузера.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр браузера.</span>
|
||||
<span class="sd"> request: Объект запроса pytest для доступа к конфигурации.</span>
|
||||
<span class="sd"> request: Объект запроса pytest.</span>
|
||||
<span class="sd"> start: Тип запуска ('local' или 'remote').</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> BrowserContext: Настроенный контекст браузера.</span>
|
||||
<span class="sd"> BrowserContext: Настроенный контекст.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">start</span> <span class="o">==</span> <span class="s1">'local'</span><span class="p">:</span>
|
||||
<span class="n">context</span> <span class="o">=</span> <span class="n">browser</span><span class="o">.</span><span class="n">new_context</span><span class="p">(</span>
|
||||
<span class="c1"># no_viewport=True,</span>
|
||||
|
|
@ -2342,6 +2355,7 @@
|
|||
<code>playwright</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Playwright">Playwright</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -2357,10 +2371,11 @@
|
|||
<code>request</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="_pytest.fixtures.FixtureRequest">FixtureRequest</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Объект запроса pytest для доступа к конфигурации.</p>
|
||||
<p>Объект запроса pytest.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2386,7 +2401,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр Firefox браузера.</p>
|
||||
<p>Экземпляр Firefox.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2396,29 +2411,31 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>fixtures\pages.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_firefox_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">)</span> <span class="o">-></span> <span class="n">Browser</span><span class="p">:</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span>
|
||||
<span class="normal">104</span>
|
||||
<span class="normal">105</span>
|
||||
<span class="normal">106</span>
|
||||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_firefox_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">:</span> <span class="n">Playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-></span> <span class="n">Browser</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создает и возвращает экземпляр Firefox браузера.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> playwright: Экземпляр Playwright.</span>
|
||||
<span class="sd"> request: Объект запроса pytest для доступа к конфигурации.</span>
|
||||
<span class="sd"> request: Объект запроса pytest.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Browser: Экземпляр Firefox браузера.</span>
|
||||
<span class="sd"> Browser: Экземпляр Firefox.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">playwright</span><span class="o">.</span><span class="n">firefox</span><span class="o">.</span><span class="n">launch</span><span class="p">(</span>
|
||||
<span class="n">headless</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">"h"</span><span class="p">),</span>
|
||||
<span class="n">slow_mo</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">"slow"</span><span class="p">),</span>
|
||||
|
|
@ -2440,7 +2457,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Создает и возвращает экземпляр Chrome браузера для удаленного запуска.</p>
|
||||
<p>Создает экземпляр Chrome для удаленного запуска.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2459,6 +2476,7 @@
|
|||
<code>playwright</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Playwright">Playwright</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -2474,10 +2492,11 @@
|
|||
<code>request</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="_pytest.fixtures.FixtureRequest">FixtureRequest</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Объект запроса pytest для доступа к конфигурации.</p>
|
||||
<p>Объект запроса pytest.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2503,7 +2522,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр Chrome браузера в режиме headless.</p>
|
||||
<p>Экземпляр Chrome в headless режиме.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2513,29 +2532,31 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>fixtures\pages.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">122</span>
|
||||
<span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
<span class="normal">125</span>
|
||||
<span class="normal">126</span>
|
||||
<span class="normal">127</span>
|
||||
<span class="normal">128</span>
|
||||
<span class="normal">129</span>
|
||||
<span class="normal">130</span>
|
||||
<span class="normal">131</span>
|
||||
<span class="normal">132</span>
|
||||
<span class="normal">133</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">133</span>
|
||||
<span class="normal">134</span>
|
||||
<span class="normal">135</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_remote_chrome</span><span class="p">(</span><span class="n">playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">)</span> <span class="o">-></span> <span class="n">Browser</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создает и возвращает экземпляр Chrome браузера для удаленного запуска.</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span>
|
||||
<span class="normal">138</span>
|
||||
<span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span>
|
||||
<span class="normal">147</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_remote_chrome</span><span class="p">(</span><span class="n">playwright</span><span class="p">:</span> <span class="n">Playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-></span> <span class="n">Browser</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создает экземпляр Chrome для удаленного запуска.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> playwright: Экземпляр Playwright.</span>
|
||||
<span class="sd"> request: Объект запроса pytest для доступа к конфигурации.</span>
|
||||
<span class="sd"> request: Объект запроса pytest.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> Browser: Экземпляр Chrome браузера в режиме headless.</span>
|
||||
<span class="sd"> Browser: Экземпляр Chrome в headless режиме.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">playwright</span><span class="o">.</span><span class="n">chromium</span><span class="o">.</span><span class="n">launch</span><span class="p">(</span>
|
||||
<span class="n">headless</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||||
<span class="n">slow_mo</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">"slow"</span><span class="p">)</span>
|
||||
|
|
@ -2557,7 +2578,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Добавляет пользовательские опции командной строки для настройки браузера.</p>
|
||||
<p>Добавляет опции командной строки для настройки браузера.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2576,6 +2597,7 @@
|
|||
<code>parser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="_pytest.config.argparsing.Parser">Parser</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -2590,22 +2612,19 @@
|
|||
</table>
|
||||
|
||||
|
||||
<details class="доступные-опции" open>
|
||||
<summary>Доступные опции</summary>
|
||||
<p>--bn: Выбор браузера (chrome, remote_chrome или firefox)
|
||||
<details class="опции" open>
|
||||
<summary>Опции</summary>
|
||||
<p>--bn: Браузер (chrome, remote_chrome, firefox)
|
||||
--h: Режим headless (True/False)
|
||||
--s: Размер окна в формате {'width': int, 'height': int}
|
||||
--slow: Задержка между действиями (slow_mo)
|
||||
--s: Размер окна {'width': int, 'height': int}
|
||||
--slow: Задержка между действиями (мс)
|
||||
--t: Таймаут по умолчанию (мс)
|
||||
--l: Локаль браузера</p>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>fixtures\pages.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
|
|
@ -2630,34 +2649,47 @@
|
|||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">pytest_addoption</span><span class="p">(</span><span class="n">parser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Добавляет пользовательские опции командной строки для настройки браузера.</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">pytest_addoption</span><span class="p">(</span><span class="n">parser</span><span class="p">:</span> <span class="n">Parser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Добавляет опции командной строки для настройки браузера.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> parser: Парсер pytest для добавления опций.</span>
|
||||
|
||||
<span class="sd"> Доступные опции:</span>
|
||||
<span class="sd"> --bn: Выбор браузера (chrome, remote_chrome или firefox)</span>
|
||||
<span class="sd"> Опции:</span>
|
||||
<span class="sd"> --bn: Браузер (chrome, remote_chrome, firefox)</span>
|
||||
<span class="sd"> --h: Режим headless (True/False)</span>
|
||||
<span class="sd"> --s: Размер окна в формате {'width': int, 'height': int}</span>
|
||||
<span class="sd"> --slow: Задержка между действиями (slow_mo)</span>
|
||||
<span class="sd"> --s: Размер окна {'width': int, 'height': int}</span>
|
||||
<span class="sd"> --slow: Задержка между действиями (мс)</span>
|
||||
<span class="sd"> --t: Таймаут по умолчанию (мс)</span>
|
||||
<span class="sd"> --l: Локаль браузера</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--bn'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">"chrome"</span><span class="p">,</span>
|
||||
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--bn'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">"chrome"</span><span class="p">,</span>
|
||||
<span class="n">help</span><span class="o">=</span><span class="s2">"Choose browser: chrome, remote_chrome or firefox"</span><span class="p">)</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--h'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--h'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">help</span><span class="o">=</span><span class="s1">'Choose headless: True or False'</span><span class="p">)</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--s'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="p">{</span><span class="s1">'width'</span><span class="p">:</span> <span class="mi">1600</span><span class="p">,</span> <span class="s1">'height'</span><span class="p">:</span> <span class="mi">900</span><span class="p">},</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--s'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="p">{</span><span class="s1">'width'</span><span class="p">:</span> <span class="mi">1600</span><span class="p">,</span> <span class="s1">'height'</span><span class="p">:</span> <span class="mi">900</span><span class="p">},</span>
|
||||
<span class="n">help</span><span class="o">=</span><span class="s1">'Size window: width,height'</span><span class="p">)</span>
|
||||
<span class="c1"># Закомментированные альтернативные размеры окон</span>
|
||||
<span class="c1"># parser.addoption('--s', action='store', default={'width': 1920, 'height': 1080}, help='Size window: width,height')</span>
|
||||
<span class="c1"># parser.addoption('--s', action='store', default={'width': 1920, 'height': 300}, help='Size window: width,height')</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--slow'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
|
||||
<span class="c1"># parser.addoption('--s', action='store', default={'width': 1920, 'height': 1080},</span>
|
||||
<span class="c1"># help='Size window: width,height')</span>
|
||||
<span class="c1"># parser.addoption('--s', action='store', default={'width': 1920, 'height': 300},</span>
|
||||
<span class="c1"># help='Size window: width,height')</span>
|
||||
<span class="c1"># parser.addoption('--s', action='store', default={'width': 300, 'height': 420},</span>
|
||||
<span class="c1"># help='Size window: width,height')</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--slow'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
|
||||
<span class="n">help</span><span class="o">=</span><span class="s1">'Choose slow_mo for robot action'</span><span class="p">)</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--t'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">60000</span><span class="p">,</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--t'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">60000</span><span class="p">,</span>
|
||||
<span class="n">help</span><span class="o">=</span><span class="s1">'Choose timeout'</span><span class="p">)</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--l'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">'ru-RU'</span><span class="p">,</span>
|
||||
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">'--l'</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">'store'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">'ru-RU'</span><span class="p">,</span>
|
||||
<span class="n">help</span><span class="o">=</span><span class="s1">'Choose locale'</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2676,7 +2708,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Фикстура для возврата на предыдущую страницу в браузере.</p>
|
||||
<p>Фикстура для возврата на предыдущую страницу.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2695,6 +2727,7 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
|
|
@ -2711,20 +2744,22 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>fixtures\pages.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">175</span>
|
||||
<span class="normal">176</span>
|
||||
<span class="normal">177</span>
|
||||
<span class="normal">178</span>
|
||||
<span class="normal">179</span>
|
||||
<span class="normal">180</span>
|
||||
<span class="normal">181</span>
|
||||
<span class="normal">182</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">return_back</span><span class="p">(</span><span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для возврата на предыдущую страницу в браузере.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">188</span>
|
||||
<span class="normal">189</span>
|
||||
<span class="normal">190</span>
|
||||
<span class="normal">191</span>
|
||||
<span class="normal">192</span>
|
||||
<span class="normal">193</span>
|
||||
<span class="normal">194</span>
|
||||
<span class="normal">195</span>
|
||||
<span class="normal">196</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">return_back</span><span class="p">(</span><span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для возврата на предыдущую страницу.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы браузера.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">browser</span><span class="o">.</span><span class="n">go_back</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1702,6 +1702,10 @@
|
|||
<a id="locators.confirm_locators"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль confirm_locators содержит локаторы элементов диалогов подтверждения.</p>
|
||||
<p>Класс ConfirmLocators предоставляет XPath локаторы для взаимодействия
|
||||
с диалоговыми окнами подтверждения действий в тестах.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1736,12 +1740,12 @@
|
|||
<p>Локаторы элементов диалогов подтверждения.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>CONFIRM (str): XPath локатор активного диалогового окна.
|
||||
TITLE (str): XPath локатор заголовка диалогового окна.
|
||||
BUTTON_CLOSE (str): XPath локатор кнопки закрытия диалога.
|
||||
TEXT (str): XPath локатор текстового содержимого диалога (формируется динамически).</p>
|
||||
<details class="содержит-xpath-локаторы-для" open>
|
||||
<summary>Содержит XPath локаторы для</summary>
|
||||
<p>CONFIRM (str): активного диалогового окна.
|
||||
TITLE (str): заголовка диалогового окна.
|
||||
BUTTON_CLOSE (str): кнопки закрытия диалога.
|
||||
TEXT (str): текстового содержимого диалога (формируется динамически).</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
|
@ -1751,27 +1755,29 @@ TEXT (str): XPath локатор текстового содержимого д
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>locators\confirm_locators.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ConfirmLocators</span><span class="p">:</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ConfirmLocators</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Локаторы элементов диалогов подтверждения.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> CONFIRM (str): XPath локатор активного диалогового окна.</span>
|
||||
<span class="sd"> TITLE (str): XPath локатор заголовка диалогового окна.</span>
|
||||
<span class="sd"> BUTTON_CLOSE (str): XPath локатор кнопки закрытия диалога.</span>
|
||||
<span class="sd"> TEXT (str): XPath локатор текстового содержимого диалога (формируется динамически).</span>
|
||||
<span class="sd"> Содержит XPath локаторы для:</span>
|
||||
<span class="sd"> CONFIRM (str): активного диалогового окна.</span>
|
||||
<span class="sd"> TITLE (str): заголовка диалогового окна.</span>
|
||||
<span class="sd"> BUTTON_CLOSE (str): кнопки закрытия диалога.</span>
|
||||
<span class="sd"> TEXT (str): текстового содержимого диалога (формируется динамически).</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">CONFIRM</span> <span class="o">=</span> <span class="s2">"//div[contains(@class, 'v-dialog--active')]"</span>
|
||||
<span class="n">TITLE</span> <span class="o">=</span> <span class="s2">"//div[@class='v-card__title']/h3"</span>
|
||||
<span class="n">BUTTON_CLOSE</span> <span class="o">=</span> <span class="s2">"//div[@class='vuedl-layout__closeBtn']"</span>
|
||||
|
|
|
|||
|
|
@ -1702,6 +1702,10 @@
|
|||
<a id="locators.event_panel_locators"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль event_panel_locators содержит локаторы элементов панели событий.</p>
|
||||
<p>Класс EventPanelLocators предоставляет XPath локаторы для взаимодействия
|
||||
с элементами панели событий в тестах.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1734,14 +1738,10 @@
|
|||
|
||||
|
||||
<p>Локаторы элементов панели событий.</p>
|
||||
<p>Содержит XPath локаторы для:
|
||||
BUTTONS_BLOCK (str): блока кнопок в панели инструментов</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>BUTTONS_BLOCK (str): XPath локатор блока кнопок в панели инструментов.
|
||||
Находится во втором блоке элементов toolbar'а внутри контентной области.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1749,20 +1749,22 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>locators\event_panel_locators.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span>
|
||||
<span class="normal">4</span>
|
||||
<span class="normal">5</span>
|
||||
<span class="normal">6</span>
|
||||
<span class="normal">7</span>
|
||||
<span class="normal">8</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">EventPanelLocators</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">EventPanelLocators</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Локаторы элементов панели событий.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> BUTTONS_BLOCK (str): XPath локатор блока кнопок в панели инструментов.</span>
|
||||
<span class="sd"> Находится во втором блоке элементов toolbar'а внутри контентной области.</span>
|
||||
|
||||
<span class="sd"> Содержит XPath локаторы для:</span>
|
||||
<span class="sd"> BUTTONS_BLOCK (str): блока кнопок в панели инструментов</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">BUTTONS_BLOCK</span> <span class="o">=</span> <span class="s2">"//nav/div[@class='v-toolbar__content']/div[@class='v-toolbar__items'][2]"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1702,6 +1702,10 @@
|
|||
<a id="locators.modal_window_locators"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль modal_window_locators содержит локаторы элементов модальных окон.</p>
|
||||
<p>Класс ModalWindowLocators предоставляет XPath локаторы для взаимодействия
|
||||
с элементами модальных окон в тестах.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1734,20 +1738,15 @@
|
|||
|
||||
|
||||
<p>Локаторы для элементов модальных окон.</p>
|
||||
<p>Содержит XPath локаторы для:
|
||||
MODAL_WINDOW (str): активного модального окна
|
||||
INPUT_FORM_USER_DATA (str): формы ввода пользовательских данных
|
||||
TEXT_FIELD_INPUT_FORM_USER_DATA (str): текстового поля ввода</p>
|
||||
<p>ROLES_FIELD_INPUT_FORM_USER_DATA (str): поля выбора ролей</p>
|
||||
<p>ROLES_MENU_INPUT_FORM_USER_DATA (str): меню выбора ролей
|
||||
LABEL_INPUT_FORM_USER_DATA (str): метки поля ввода</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>MODAL_WINDOW (str): XPath локатор активного модального окна.
|
||||
INPUT_FORM_USER_DATA (str): XPath локатор формы для ввода пользовательских данных.
|
||||
TEXT_FIELD_INPUT_FORM_USER_DATA (str): Относительный XPath текстового поля ввода
|
||||
внутри формы пользовательских данных.
|
||||
ROLES_FIELD_INPUT_FORM_USER_DATA (str): Относительный XPath поля выбора ролей
|
||||
внутри формы пользовательских данных.
|
||||
ROLES_MENU_INPUT_FORM_USER_DATA (str): XPath локатор активного меню выбора ролей.
|
||||
LABEL_INPUT_FORM_USER_DATA (str): XPath локатор метки поля ввода в форме.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1755,13 +1754,7 @@ LABEL_INPUT_FORM_USER_DATA (str): XPath локатор метки поля вв
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>locators\modal_window_locators.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
|
|
@ -1774,19 +1767,27 @@ LABEL_INPUT_FORM_USER_DATA (str): XPath локатор метки поля вв
|
|||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ModalWindowLocators</span><span class="p">:</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ModalWindowLocators</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Локаторы для элементов модальных окон.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> MODAL_WINDOW (str): XPath локатор активного модального окна.</span>
|
||||
<span class="sd"> INPUT_FORM_USER_DATA (str): XPath локатор формы для ввода пользовательских данных.</span>
|
||||
<span class="sd"> TEXT_FIELD_INPUT_FORM_USER_DATA (str): Относительный XPath текстового поля ввода </span>
|
||||
<span class="sd"> внутри формы пользовательских данных.</span>
|
||||
<span class="sd"> ROLES_FIELD_INPUT_FORM_USER_DATA (str): Относительный XPath поля выбора ролей </span>
|
||||
<span class="sd"> внутри формы пользовательских данных.</span>
|
||||
<span class="sd"> ROLES_MENU_INPUT_FORM_USER_DATA (str): XPath локатор активного меню выбора ролей.</span>
|
||||
<span class="sd"> LABEL_INPUT_FORM_USER_DATA (str): XPath локатор метки поля ввода в форме.</span>
|
||||
<span class="sd"> Содержит XPath локаторы для:</span>
|
||||
<span class="sd"> MODAL_WINDOW (str): активного модального окна</span>
|
||||
<span class="sd"> INPUT_FORM_USER_DATA (str): формы ввода пользовательских данных</span>
|
||||
<span class="sd"> TEXT_FIELD_INPUT_FORM_USER_DATA (str): текстового поля ввода</span>
|
||||
|
||||
<span class="sd"> ROLES_FIELD_INPUT_FORM_USER_DATA (str): поля выбора ролей</span>
|
||||
|
||||
<span class="sd"> ROLES_MENU_INPUT_FORM_USER_DATA (str): меню выбора ролей</span>
|
||||
<span class="sd"> LABEL_INPUT_FORM_USER_DATA (str): метки поля ввода</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">MODAL_WINDOW</span> <span class="o">=</span> <span class="s2">"//div[contains(@class, 'v-dialog--active')]"</span>
|
||||
|
||||
<span class="n">INPUT_FORM_USER_DATA</span> <span class="o">=</span> <span class="s2">"//form[@class='v-form']"</span>
|
||||
|
|
|
|||
|
|
@ -1702,6 +1702,10 @@
|
|||
<a id="locators.navigation_panel_locators"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль navigation_panel_locators содержит локаторы навигационной панели.</p>
|
||||
<p>Класс NavigationPanelLocators предоставляет XPath локаторы для работы
|
||||
с элементами навигационной панели в тестах.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1734,21 +1738,13 @@
|
|||
|
||||
|
||||
<p>Локаторы элементов навигационной панели.</p>
|
||||
<p>Содержит XPath локаторы для:
|
||||
PANEL_MAIN (str): основной панели навигации
|
||||
PANEL_SCROLL_CONTAINER (str): контейнера с прокруткой
|
||||
NODE_ROOT (str): корневого узла дерева
|
||||
NODE_CHILDREN (str): дочерних элементов узла</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>PANEL_MAIN (str): XPath локатор основной панели навигации.
|
||||
Ищет элемент ul с классом, содержащим 'v-expansion-panel'.
|
||||
PANEL_SCROLL_CONTAINER (str): XPath локатор контейнера с прокруткой,
|
||||
содержащего навигационную панель. Ищет div с классом 'scrollarea__body',
|
||||
внутри которого находится панель навигации.
|
||||
NODE_ROOT (str): XPath локатор корневого узла дерева навигации.
|
||||
Ищет div с классом, содержащим 'v-treeview-node__root'.
|
||||
NODE_CHILDREN (str): XPath локатор дочерних элементов узла дерева.
|
||||
Ищет div с классом, содержащим 'v-treeview-node__children'.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1756,13 +1752,7 @@ NODE_CHILDREN (str): XPath локатор дочерних элементов у
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>locators\navigation_panel_locators.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
|
|
@ -1774,20 +1764,18 @@ NODE_CHILDREN (str): XPath локатор дочерних элементов у
|
|||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">NavigationPanelLocators</span><span class="p">:</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">NavigationPanelLocators</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Локаторы элементов навигационной панели.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> PANEL_MAIN (str): XPath локатор основной панели навигации.</span>
|
||||
<span class="sd"> Ищет элемент ul с классом, содержащим 'v-expansion-panel'.</span>
|
||||
<span class="sd"> PANEL_SCROLL_CONTAINER (str): XPath локатор контейнера с прокруткой,</span>
|
||||
<span class="sd"> содержащего навигационную панель. Ищет div с классом 'scrollarea__body',</span>
|
||||
<span class="sd"> внутри которого находится панель навигации.</span>
|
||||
<span class="sd"> NODE_ROOT (str): XPath локатор корневого узла дерева навигации.</span>
|
||||
<span class="sd"> Ищет div с классом, содержащим 'v-treeview-node__root'.</span>
|
||||
<span class="sd"> NODE_CHILDREN (str): XPath локатор дочерних элементов узла дерева.</span>
|
||||
<span class="sd"> Ищет div с классом, содержащим 'v-treeview-node__children'.</span>
|
||||
<span class="sd"> Содержит XPath локаторы для:</span>
|
||||
<span class="sd"> PANEL_MAIN (str): основной панели навигации</span>
|
||||
<span class="sd"> PANEL_SCROLL_CONTAINER (str): контейнера с прокруткой</span>
|
||||
<span class="sd"> NODE_ROOT (str): корневого узла дерева</span>
|
||||
<span class="sd"> NODE_CHILDREN (str): дочерних элементов узла</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">PANEL_MAIN</span> <span class="o">=</span> <span class="s2">"//ul[contains(@class, 'v-expansion-panel')]"</span>
|
||||
<span class="n">PANEL_SCROLL_CONTAINER</span> <span class="o">=</span> <span class="s2">"//div[contains(@class, 'scrollarea__body') and .//ul[contains(@class, 'v-expansion-panel')]]"</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -1702,6 +1702,10 @@
|
|||
<a id="locators.table_locators"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль table_locators содержит локаторы табличных элементов.</p>
|
||||
<p>Класс TableLocators предоставляет XPath локаторы для работы
|
||||
с таблицами в рабочей области приложения.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1734,18 +1738,11 @@
|
|||
|
||||
|
||||
<p>Локаторы для табличных элементов в рабочей области.</p>
|
||||
<p>Содержит XPath локаторы для:
|
||||
TABLE_WORK_AREA (str): основной таблицы в рабочей области
|
||||
TABLE_SCROLL_CONTAINER (str): контейнера с прокруткой таблицы</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>TABLE_WORK_AREA (str): XPath локатор основной таблицы в рабочей области.
|
||||
Ищет элемент table, находящийся по пути:
|
||||
scrollarea__body -> div -> div -> div -> table
|
||||
TABLE_SCROLL_CONTAINER (str): XPath локатор контейнера с прокруткой таблицы.
|
||||
Ищет tbody внутри div с классом scrollarea__body,
|
||||
содержащего таблицу с классом scrolltable__container.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1753,29 +1750,23 @@ TABLE_SCROLL_CONTAINER (str): XPath локатор контейнера с пр
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>locators\table_locators.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TableLocators</span><span class="p">:</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TableLocators</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Локаторы для табличных элементов в рабочей области.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> TABLE_WORK_AREA (str): XPath локатор основной таблицы в рабочей области.</span>
|
||||
<span class="sd"> Ищет элемент table, находящийся по пути:</span>
|
||||
<span class="sd"> scrollarea__body -> div -> div -> div -> table</span>
|
||||
<span class="sd"> TABLE_SCROLL_CONTAINER (str): XPath локатор контейнера с прокруткой таблицы.</span>
|
||||
<span class="sd"> Ищет tbody внутри div с классом scrollarea__body,</span>
|
||||
<span class="sd"> содержащего таблицу с классом scrolltable__container.</span>
|
||||
<span class="sd"> Содержит XPath локаторы для:</span>
|
||||
<span class="sd"> TABLE_WORK_AREA (str): основной таблицы в рабочей области</span>
|
||||
<span class="sd"> TABLE_SCROLL_CONTAINER (str): контейнера с прокруткой таблицы</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">TABLE_WORK_AREA</span> <span class="o">=</span> <span class="s2">"//div[@class='scrollarea__body']/div/div/div/table"</span>
|
||||
<span class="n">TABLE_SCROLL_CONTAINER</span> <span class="o">=</span> <span class="s2">"//div[contains(@class, 'scrollarea__body') and .//table[@class='scrolltable__container']]//tbody"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
|
|||
|
|
@ -1702,6 +1702,10 @@
|
|||
<a id="locators.toolbar_locators"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль toolbar_locators содержит локаторы элементов панели инструментов.</p>
|
||||
<p>Класс ToolbarLocators предоставляет XPath локаторы для взаимодействия
|
||||
с элементами тулбара и всплывающими подсказками.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1733,20 +1737,12 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Локаторы элементов тулбара (панели инструментов).</p>
|
||||
<p>Локаторы элементов панели инструментов (тулбара).</p>
|
||||
<p>Содержит XPath локаторы для:
|
||||
TITLE (str): заголовка тулбара
|
||||
TOOLTIP (str): активной всплывающей подсказки</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>TITLE (str): XPath локатор заголовка тулбара.
|
||||
Находится в навигационной панели (nav) внутри элемента с классом,
|
||||
содержащим 'v-toolbar__title'.</p>
|
||||
<p>TOOLTIP (str): XPath локатор активного всплывающего подсказывающего элемента.
|
||||
Ищет div с классами, содержащими:
|
||||
- 'v-tooltip__content' (основа тултипа)
|
||||
- 'menuable__content__active' (показанное состояние)</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1754,13 +1750,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>locators\toolbar_locators.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
|
|
@ -1768,19 +1758,15 @@
|
|||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ToolbarLocators</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Локаторы элементов тулбара (панели инструментов).</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ToolbarLocators</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Локаторы элементов панели инструментов (тулбара).</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> TITLE (str): XPath локатор заголовка тулбара.</span>
|
||||
<span class="sd"> Находится в навигационной панели (nav) внутри элемента с классом,</span>
|
||||
<span class="sd"> содержащим 'v-toolbar__title'.</span>
|
||||
|
||||
<span class="sd"> TOOLTIP (str): XPath локатор активного всплывающего подсказывающего элемента.</span>
|
||||
<span class="sd"> Ищет div с классами, содержащими:</span>
|
||||
<span class="sd"> - 'v-tooltip__content' (основа тултипа)</span>
|
||||
<span class="sd"> - 'menuable__content__active' (показанное состояние)</span>
|
||||
<span class="sd"> Содержит XPath локаторы для:</span>
|
||||
<span class="sd"> TITLE (str): заголовка тулбара</span>
|
||||
<span class="sd"> TOOLTIP (str): активной всплывающей подсказки</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">TITLE</span> <span class="o">=</span> <span class="s2">"//nav//div[contains(@class, 'v-toolbar__title')]"</span>
|
||||
<span class="n">TOOLTIP</span> <span class="o">=</span> <span class="s2">"//div[contains(@class,'v-tooltip__content menuable__content__active')]"</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
|
|||
BIN
site/objects.inv
BIN
site/objects.inv
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
|
@ -1768,6 +1768,10 @@
|
|||
<a id="pages.login_page"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль страницы авторизации.</p>
|
||||
<p>Содержит класс LoginPage для работы с элементами страницы входа в систему.
|
||||
Использует Playwright для взаимодействия с UI и обработки ответов сервера.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1806,11 +1810,11 @@
|
|||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page (Page): Экземпляр страницы Playwright.
|
||||
login_input (TextInput): Поле ввода логина.
|
||||
password_input (TextInput): Поле ввода пароля.
|
||||
login_button (Button): Кнопка входа.
|
||||
error_alert (AlertComponent): Компонент алерта с ошибкой.</p>
|
||||
<p>page: Экземпляр страницы Playwright.
|
||||
login_input: Поле ввода логина.
|
||||
password_input: Поле ввода пароля.
|
||||
login_button: Кнопка входа.
|
||||
error_alert: Компонент алерта с ошибкой.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
|
@ -1820,99 +1824,102 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\login_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span>
|
||||
<span class="normal">96</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">LoginPage</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 15</span>
|
||||
<span class="normal"> 16</span>
|
||||
<span class="normal"> 17</span>
|
||||
<span class="normal"> 18</span>
|
||||
<span class="normal"> 19</span>
|
||||
<span class="normal"> 20</span>
|
||||
<span class="normal"> 21</span>
|
||||
<span class="normal"> 22</span>
|
||||
<span class="normal"> 23</span>
|
||||
<span class="normal"> 24</span>
|
||||
<span class="normal"> 25</span>
|
||||
<span class="normal"> 26</span>
|
||||
<span class="normal"> 27</span>
|
||||
<span class="normal"> 28</span>
|
||||
<span class="normal"> 29</span>
|
||||
<span class="normal"> 30</span>
|
||||
<span class="normal"> 31</span>
|
||||
<span class="normal"> 32</span>
|
||||
<span class="normal"> 33</span>
|
||||
<span class="normal"> 34</span>
|
||||
<span class="normal"> 35</span>
|
||||
<span class="normal"> 36</span>
|
||||
<span class="normal"> 37</span>
|
||||
<span class="normal"> 38</span>
|
||||
<span class="normal"> 39</span>
|
||||
<span class="normal"> 40</span>
|
||||
<span class="normal"> 41</span>
|
||||
<span class="normal"> 42</span>
|
||||
<span class="normal"> 43</span>
|
||||
<span class="normal"> 44</span>
|
||||
<span class="normal"> 45</span>
|
||||
<span class="normal"> 46</span>
|
||||
<span class="normal"> 47</span>
|
||||
<span class="normal"> 48</span>
|
||||
<span class="normal"> 49</span>
|
||||
<span class="normal"> 50</span>
|
||||
<span class="normal"> 51</span>
|
||||
<span class="normal"> 52</span>
|
||||
<span class="normal"> 53</span>
|
||||
<span class="normal"> 54</span>
|
||||
<span class="normal"> 55</span>
|
||||
<span class="normal"> 56</span>
|
||||
<span class="normal"> 57</span>
|
||||
<span class="normal"> 58</span>
|
||||
<span class="normal"> 59</span>
|
||||
<span class="normal"> 60</span>
|
||||
<span class="normal"> 61</span>
|
||||
<span class="normal"> 62</span>
|
||||
<span class="normal"> 63</span>
|
||||
<span class="normal"> 64</span>
|
||||
<span class="normal"> 65</span>
|
||||
<span class="normal"> 66</span>
|
||||
<span class="normal"> 67</span>
|
||||
<span class="normal"> 68</span>
|
||||
<span class="normal"> 69</span>
|
||||
<span class="normal"> 70</span>
|
||||
<span class="normal"> 71</span>
|
||||
<span class="normal"> 72</span>
|
||||
<span class="normal"> 73</span>
|
||||
<span class="normal"> 74</span>
|
||||
<span class="normal"> 75</span>
|
||||
<span class="normal"> 76</span>
|
||||
<span class="normal"> 77</span>
|
||||
<span class="normal"> 78</span>
|
||||
<span class="normal"> 79</span>
|
||||
<span class="normal"> 80</span>
|
||||
<span class="normal"> 81</span>
|
||||
<span class="normal"> 82</span>
|
||||
<span class="normal"> 83</span>
|
||||
<span class="normal"> 84</span>
|
||||
<span class="normal"> 85</span>
|
||||
<span class="normal"> 86</span>
|
||||
<span class="normal"> 87</span>
|
||||
<span class="normal"> 88</span>
|
||||
<span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">LoginPage</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы со страницей авторизации.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page (Page): Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> login_input (TextInput): Поле ввода логина.</span>
|
||||
<span class="sd"> password_input (TextInput): Поле ввода пароля.</span>
|
||||
<span class="sd"> login_button (Button): Кнопка входа.</span>
|
||||
<span class="sd"> error_alert (AlertComponent): Компонент алерта с ошибкой.</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> login_input: Поле ввода логина.</span>
|
||||
<span class="sd"> password_input: Поле ввода пароля.</span>
|
||||
<span class="sd"> login_button: Кнопка входа.</span>
|
||||
<span class="sd"> error_alert: Компонент алерта с ошибкой.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
|
@ -1921,6 +1928,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">login_input</span> <span class="o">=</span> <span class="n">TextInput</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">page</span><span class="o">.</span><span class="n">get_by_label</span><span class="p">(</span><span class="s2">"Имя пользователя"</span><span class="p">),</span> <span class="s2">"login input"</span><span class="p">)</span>
|
||||
|
|
@ -1932,16 +1940,17 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
<span class="k">def</span><span class="w"> </span><span class="nf">do_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Выполняет вход в систему.</span>
|
||||
|
||||
<span class="sd"> Если username/password не указаны, использует значения из Constants.</span>
|
||||
<span class="sd"> Использует переданные учетные данные или значения из Constants.</span>
|
||||
<span class="sd"> Обрабатывает ответ сервера для получения токена доступа.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> username: Логин пользователя. Если None, используется значение из Constants.</span>
|
||||
<span class="sd"> password: Пароль пользователя. Если None, используется значение из Constants.</span>
|
||||
<span class="sd"> username: Логин пользователя. По умолчанию из Constants.</span>
|
||||
<span class="sd"> password: Пароль пользователя. По умолчанию из Constants.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если после входа открылась неожиданная страница.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">handle_response</span><span class="p">(</span><span class="n">response</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="s2">"login"</span> <span class="ow">in</span> <span class="n">response</span><span class="o">.</span><span class="n">url</span><span class="p">:</span>
|
||||
<span class="n">response_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_response_body</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
|
||||
|
|
@ -1970,13 +1979,14 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
<span class="k">def</span><span class="w"> </span><span class="nf">do_unsuccessful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"someuser"</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"password"</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Выполняет попытку входа с неверными учетными данными.</span>
|
||||
|
||||
<span class="sd"> Можно передать свои неверные данные или использовать значения по умолчанию.</span>
|
||||
<span class="sd"> Проверяет наличие сообщения об ошибке.</span>
|
||||
<span class="sd"> Проверяет наличие сообщения об ошибке. Можно передать свои данные</span>
|
||||
<span class="sd"> или использовать значения по умолчанию.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> username: Неверный логин пользователя. По умолчанию "someuser".</span>
|
||||
<span class="sd"> password: Неверный пароль пользователя. По умолчанию "password".</span>
|
||||
<span class="sd"> username: Неверный логин. По умолчанию "someuser".</span>
|
||||
<span class="sd"> password: Неверный пароль. По умолчанию "password".</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">login_input</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
||||
|
|
@ -1987,8 +1997,8 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">login_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_absence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_alert_presence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_alert_absence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
||||
|
|
@ -2051,10 +2061,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\login_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
|
|
@ -2063,12 +2070,17 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует элементы страницы авторизации.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">login_input</span> <span class="o">=</span> <span class="n">TextInput</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">page</span><span class="o">.</span><span class="n">get_by_label</span><span class="p">(</span><span class="s2">"Имя пользователя"</span><span class="p">),</span> <span class="s2">"login input"</span><span class="p">)</span>
|
||||
|
|
@ -2094,7 +2106,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Выполняет вход в систему.</p>
|
||||
<p>Если username/password не указаны, использует значения из Constants.
|
||||
<p>Использует переданные учетные данные или значения из Constants.
|
||||
Обрабатывает ответ сервера для получения токена доступа.</p>
|
||||
|
||||
|
||||
|
|
@ -2118,7 +2130,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Логин пользователя. Если None, используется значение из Constants.</p>
|
||||
<p>Логин пользователя. По умолчанию из Constants.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2134,7 +2146,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Пароль пользователя. Если None, используется значение из Constants.</p>
|
||||
<p>Пароль пользователя. По умолчанию из Constants.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2170,11 +2182,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\login_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
|
|
@ -2206,19 +2214,25 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Выполняет вход в систему.</span>
|
||||
|
||||
<span class="sd"> Если username/password не указаны, использует значения из Constants.</span>
|
||||
<span class="sd"> Использует переданные учетные данные или значения из Constants.</span>
|
||||
<span class="sd"> Обрабатывает ответ сервера для получения токена доступа.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> username: Логин пользователя. Если None, используется значение из Constants.</span>
|
||||
<span class="sd"> password: Пароль пользователя. Если None, используется значение из Constants.</span>
|
||||
<span class="sd"> username: Логин пользователя. По умолчанию из Constants.</span>
|
||||
<span class="sd"> password: Пароль пользователя. По умолчанию из Constants.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если после входа открылась неожиданная страница.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">handle_response</span><span class="p">(</span><span class="n">response</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="s2">"login"</span> <span class="ow">in</span> <span class="n">response</span><span class="o">.</span><span class="n">url</span><span class="p">:</span>
|
||||
<span class="n">response_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_response_body</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
|
||||
|
|
@ -2261,8 +2275,8 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Выполняет попытку входа с неверными учетными данными.</p>
|
||||
<p>Можно передать свои неверные данные или использовать значения по умолчанию.
|
||||
Проверяет наличие сообщения об ошибке.</p>
|
||||
<p>Проверяет наличие сообщения об ошибке. Можно передать свои данные
|
||||
или использовать значения по умолчанию.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2285,7 +2299,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Неверный логин пользователя. По умолчанию "someuser".</p>
|
||||
<p>Неверный логин. По умолчанию "someuser".</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2301,7 +2315,7 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Неверный пароль пользователя. По умолчанию "password".</p>
|
||||
<p>Неверный пароль. По умолчанию "password".</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2314,37 +2328,39 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\login_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span>
|
||||
<span class="normal">96</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_unsuccessful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"someuser"</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"password"</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 80</span>
|
||||
<span class="normal"> 81</span>
|
||||
<span class="normal"> 82</span>
|
||||
<span class="normal"> 83</span>
|
||||
<span class="normal"> 84</span>
|
||||
<span class="normal"> 85</span>
|
||||
<span class="normal"> 86</span>
|
||||
<span class="normal"> 87</span>
|
||||
<span class="normal"> 88</span>
|
||||
<span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_unsuccessful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">username</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"someuser"</span><span class="p">,</span> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"password"</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Выполняет попытку входа с неверными учетными данными.</span>
|
||||
|
||||
<span class="sd"> Можно передать свои неверные данные или использовать значения по умолчанию.</span>
|
||||
<span class="sd"> Проверяет наличие сообщения об ошибке.</span>
|
||||
<span class="sd"> Проверяет наличие сообщения об ошибке. Можно передать свои данные</span>
|
||||
<span class="sd"> или использовать значения по умолчанию.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> username: Неверный логин пользователя. По умолчанию "someuser".</span>
|
||||
<span class="sd"> password: Неверный пароль пользователя. По умолчанию "password".</span>
|
||||
<span class="sd"> username: Неверный логин. По умолчанию "someuser".</span>
|
||||
<span class="sd"> password: Неверный пароль. По умолчанию "password".</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">login_input</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
|
||||
|
|
@ -2355,8 +2371,8 @@ error_alert (AlertComponent): Компонент алерта с ошибкой.
|
|||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">login_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_absence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_alert_presence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">error_alert</span><span class="o">.</span><span class="n">check_alert_absence</span><span class="p">(</span><span class="s2">"Неверная пара логин/пароль"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1930,6 +1930,10 @@
|
|||
<a id="pages.main_page"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль главной страницы приложения.</p>
|
||||
<p>Содержит класс MainPage для работы с элементами главной страницы.
|
||||
Включает взаимодействие с панелью навигации, кнопками и карточкой пользователя.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1968,10 +1972,10 @@
|
|||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>page (Page): Экземпляр страницы Playwright.
|
||||
navigation_panel (NavigationPanelComponent): Компонент панели навигации.
|
||||
user_button (Button): Кнопка пользователя.
|
||||
user_card (CardComponent): Карточка пользователя.</p>
|
||||
<p>page: Экземпляр страницы Playwright.
|
||||
navigation_panel: Компонент панели навигации.
|
||||
user_button: Кнопка пользователя.
|
||||
user_card: Карточка пользователя.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
|
@ -1981,12 +1985,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 10</span>
|
||||
<span class="normal"> 11</span>
|
||||
<span class="normal"> 12</span>
|
||||
<span class="normal"> 13</span>
|
||||
<span class="normal"> 14</span>
|
||||
<span class="normal"> 15</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 15</span>
|
||||
<span class="normal"> 16</span>
|
||||
<span class="normal"> 17</span>
|
||||
<span class="normal"> 18</span>
|
||||
|
|
@ -2081,14 +2080,31 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">MainPage</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span>
|
||||
<span class="normal">122</span>
|
||||
<span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
<span class="normal">125</span>
|
||||
<span class="normal">126</span>
|
||||
<span class="normal">127</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">MainPage</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с главной страницей приложения.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> page (Page): Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> navigation_panel (NavigationPanelComponent): Компонент панели навигации.</span>
|
||||
<span class="sd"> user_button (Button): Кнопка пользователя.</span>
|
||||
<span class="sd"> user_card (CardComponent): Карточка пользователя.</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> navigation_panel: Компонент панели навигации.</span>
|
||||
<span class="sd"> user_button: Кнопка пользователя.</span>
|
||||
<span class="sd"> user_card: Карточка пользователя.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
|
@ -2097,6 +2113,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span> <span class="o">=</span> <span class="n">NavigationPanelComponent</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
|
@ -2114,45 +2131,53 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_item</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Конфигурация' в панели навигации.</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Конфигурация'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_maintenance_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Обслуживание' в панели навигации.</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Обслуживание'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по кнопке пользователя."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Выполняет выход из системы."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">should_be_user_button</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">click_user_button</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">user_card</span><span class="o">.</span><span class="n">click_logout_button</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает панель навигации вверх."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает панель навигации вниз."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверки:</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">should_be_navigation_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие панели навигации."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span>
|
||||
<span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span>
|
||||
<span class="s2">"Navigation panel is missing"</span>
|
||||
|
|
@ -2160,14 +2185,16 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">should_be_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие кнопки пользователя."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="s2">"User button is missing on event panel"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет возможность вертикальной прокрутки панели навигации.</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет возможность вертикальной прокрутки панели.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если панель можно прокручивать, иначе False.</span>
|
||||
<span class="sd"> bool: True если прокрутка возможна, иначе False.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">is_scrollable_vertically</span><span class="p">(</span>
|
||||
<span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span>
|
||||
<span class="p">)</span>
|
||||
|
|
@ -2178,6 +2205,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для проверки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">check_item_visibility</span><span class="p">(</span>
|
||||
<span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span>
|
||||
<span class="n">item_name</span>
|
||||
|
|
@ -2244,12 +2272,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
|
|
@ -2258,12 +2281,19 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует элементы главной страницы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span> <span class="o">=</span> <span class="n">NavigationPanelComponent</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
|
@ -2326,21 +2356,23 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span>
|
||||
<span class="normal">104</span>
|
||||
<span class="normal">105</span>
|
||||
<span class="normal">106</span>
|
||||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span>
|
||||
<span class="normal">122</span>
|
||||
<span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
<span class="normal">125</span>
|
||||
<span class="normal">126</span>
|
||||
<span class="normal">127</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость элемента в панели навигации.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для проверки.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">check_item_visibility</span><span class="p">(</span>
|
||||
<span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span>
|
||||
<span class="n">item_name</span>
|
||||
|
|
@ -2362,7 +2394,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет возможность вертикальной прокрутки панели навигации.</p>
|
||||
<p>Проверяет возможность вертикальной прокрутки панели.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
|
|
@ -2380,7 +2412,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True если панель можно прокручивать, иначе False.</p>
|
||||
<p>True если прокрутка возможна, иначе False.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2390,20 +2422,22 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span>
|
||||
<span class="normal">96</span>
|
||||
<span class="normal">97</span>
|
||||
<span class="normal">98</span>
|
||||
<span class="normal">99</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет возможность вертикальной прокрутки панели навигации.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">106</span>
|
||||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет возможность вертикальной прокрутки панели.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если панель можно прокручивать, иначе False.</span>
|
||||
<span class="sd"> bool: True если прокрутка возможна, иначе False.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">is_scrollable_vertically</span><span class="p">(</span>
|
||||
<span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span>
|
||||
<span class="p">)</span>
|
||||
|
|
@ -2424,7 +2458,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Кликает по элементу подраздела 'Конфигурация' в панели навигации.</p>
|
||||
<p>Кликает по элементу подраздела 'Конфигурация'.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2460,18 +2494,20 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Конфигурация' в панели навигации.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Конфигурация'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2526,18 +2562,20 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_main_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_main_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу основной панели навигации.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_item</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2556,7 +2594,7 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Кликает по элементу подраздела 'Обслуживание' в панели навигации.</p>
|
||||
<p>Кликает по элементу подраздела 'Обслуживание'.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2592,18 +2630,20 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_maintenance_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Обслуживание' в панели навигации.</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_maintenance_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по элементу подраздела 'Обслуживание'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> item_name: Название элемента для клика.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2627,10 +2667,12 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Кликает по кнопке пользователя."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2654,12 +2696,14 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Выполняет выход из системы."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">should_be_user_button</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">click_user_button</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">user_card</span><span class="o">.</span><span class="n">click_logout_button</span><span class="p">()</span>
|
||||
|
|
@ -2685,10 +2729,12 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает панель навигации вниз."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2712,10 +2758,12 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает панель навигации вверх."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2739,13 +2787,15 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_navigation_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span>
|
||||
<span class="normal">96</span>
|
||||
<span class="normal">97</span>
|
||||
<span class="normal">98</span>
|
||||
<span class="normal">99</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_navigation_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие панели навигации."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span>
|
||||
<span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span>
|
||||
<span class="s2">"Navigation panel is missing"</span>
|
||||
|
|
@ -2772,10 +2822,12 @@ user_card (CardComponent): Карточка пользователя.</p>
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\main_page.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span>
|
||||
<span class="normal">104</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие кнопки пользователя."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="s2">"User button is missing on event panel"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1912,6 +1912,10 @@
|
|||
<a id="pages.service_status_tab"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль вкладки 'Статус обслуживания'.</p>
|
||||
<p>Содержит класс ServiceStatusTab для работы с таблицей сервисов.
|
||||
Позволяет проверять состояние и взаимодействовать с элементами вкладки.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1946,7 +1950,8 @@
|
|||
|
||||
|
||||
<p>Класс для работы с вкладкой 'Статус обслуживания'.</p>
|
||||
<p>Предоставляет методы для взаимодействия с таблицей сервисов и проверки её состояния.</p>
|
||||
<p>Предоставляет методы для взаимодействия с таблицей сервисов и проверки
|
||||
её состояния.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1987,13 +1992,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal"> 10</span>
|
||||
<span class="normal"> 11</span>
|
||||
<span class="normal"> 12</span>
|
||||
<span class="normal"> 13</span>
|
||||
<span class="normal"> 14</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 14</span>
|
||||
<span class="normal"> 15</span>
|
||||
<span class="normal"> 16</span>
|
||||
<span class="normal"> 17</span>
|
||||
|
|
@ -2121,24 +2120,44 @@
|
|||
<span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ServiceStatusTab</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span>
|
||||
<span class="normal">147</span>
|
||||
<span class="normal">148</span>
|
||||
<span class="normal">149</span>
|
||||
<span class="normal">150</span>
|
||||
<span class="normal">151</span>
|
||||
<span class="normal">152</span>
|
||||
<span class="normal">153</span>
|
||||
<span class="normal">154</span>
|
||||
<span class="normal">155</span>
|
||||
<span class="normal">156</span>
|
||||
<span class="normal">157</span>
|
||||
<span class="normal">158</span>
|
||||
<span class="normal">159</span>
|
||||
<span class="normal">160</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ServiceStatusTab</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для работы с вкладкой 'Статус обслуживания'.</span>
|
||||
|
||||
<span class="sd"> Предоставляет методы для взаимодействия с таблицей сервисов и проверки её состояния.</span>
|
||||
<span class="sd"> Предоставляет методы для взаимодействия с таблицей сервисов и проверки</span>
|
||||
<span class="sd"> её состояния.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> page (Page): Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> page: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонентов вкладки 'Статус обслуживания'."""</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компоненты вкладки 'Статус обслуживания'."""</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span> <span class="o">=</span> <span class="n">ToolbarComponent</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="s2">"Статус обслуживания"</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span> <span class="o">=</span> <span class="n">TableComponent</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">get_rows_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает количество строк в таблице сервисов (без учёта заголовка).</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает количество строк в таблице (без заголовка).</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> int: Количество строк с данными.</span>
|
||||
|
|
@ -2146,6 +2165,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если таблица пуста.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
|
||||
<span class="n">rows_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
|
||||
|
||||
|
|
@ -2156,29 +2176,32 @@
|
|||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает таблицу сервисов вверх."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает таблицу сервисов вниз."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет содержимое таблицы сервисов.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> - Наличие заголовков таблицы</span>
|
||||
<span class="sd"> - Соответствие заголовков ожидаемым значениям</span>
|
||||
<span class="sd"> - Наличие хотя бы одной строки с данными</span>
|
||||
<span class="sd"> Проверяет заголовки и наличие данных в таблице.</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если таблица пуста или заголовки не соответствуют ожидаемым.</span>
|
||||
<span class="sd"> AssertionError: Если таблица пуста или заголовки неверны.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">expected_headers</span> <span class="o">=</span> <span class="p">[</span>
|
||||
<span class="s1">'Контейнер'</span><span class="p">,</span>
|
||||
<span class="s1">'Время создания'</span><span class="p">,</span>
|
||||
<span class="s1">'Статус'</span><span class="p">,</span>
|
||||
<span class="s1">'Время работы'</span><span class="p">,</span>
|
||||
<span class="s1">'Image ID'</span><span class="p">,</span>
|
||||
<span class="s1">'Контейнер'</span><span class="p">,</span>
|
||||
<span class="s1">'Время создания'</span><span class="p">,</span>
|
||||
<span class="s1">'Статус'</span><span class="p">,</span>
|
||||
<span class="s1">'Время работы'</span><span class="p">,</span>
|
||||
<span class="s1">'Image ID'</span><span class="p">,</span>
|
||||
<span class="s1">'Image ТЭГ'</span>
|
||||
<span class="p">]</span>
|
||||
|
||||
|
|
@ -2190,7 +2213,7 @@
|
|||
<span class="n">actual_headers</span> <span class="o">=</span> <span class="n">table_content</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">check_equals</span><span class="p">(</span>
|
||||
<span class="n">actual_headers</span><span class="p">,</span>
|
||||
<span class="n">actual_headers</span><span class="p">,</span>
|
||||
<span class="n">expected_headers</span><span class="p">,</span>
|
||||
<span class="sa">f</span><span class="s2">"Expected table headers </span><span class="si">{</span><span class="n">expected_headers</span><span class="si">}</span><span class="s2"> are not equal </span><span class="si">{</span><span class="n">actual_headers</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="p">)</span>
|
||||
|
|
@ -2204,37 +2227,41 @@
|
|||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если прокрутка возможна, иначе False.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">is_scrollable_vertically</span><span class="p">(</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость первой строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если первая строка не видна.</span>
|
||||
<span class="sd"> AssertionError: Если строка не видна.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_first_row_visibility</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость последней строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если последняя строка не видна.</span>
|
||||
<span class="sd"> AssertionError: Если строка не видна.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_last_row_visibility</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет выделение указанной строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> row_index (int): Индекс проверяемой строки.</span>
|
||||
<span class="sd"> row_index: Индекс проверяемой строки.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если строка не выделена.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_row_highlighting</span><span class="p">(</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="n">row_index</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
|
|
@ -2244,7 +2271,8 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если тулбар отсутствует.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="s2">"Toolbar is missing"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_toolbar_presence</span><span class="p">(</span><span class="s2">"Toolbar is missing"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">should_be_services_table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие таблицы сервисов.</span>
|
||||
|
|
@ -2252,8 +2280,9 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если таблица отсутствует.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="s2">"Service statuses table is missing"</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2282,18 +2311,20 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Инициализация компонентов вкладки 'Статус обслуживания'.</p>
|
||||
<p>Инициализирует компоненты вкладки 'Статус обслуживания'.</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализация компонентов вкладки 'Статус обслуживания'."""</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует компоненты вкладки 'Статус обслуживания'."""</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span> <span class="o">=</span> <span class="n">ToolbarComponent</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="s2">"Статус обслуживания"</span><span class="p">)</span>
|
||||
|
|
@ -2316,10 +2347,7 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет содержимое таблицы сервисов.</p>
|
||||
<p>Проверяет:
|
||||
- Наличие заголовков таблицы
|
||||
- Соответствие заголовков ожидаемым значениям
|
||||
- Наличие хотя бы одной строки с данными</p>
|
||||
<p>Проверяет заголовки и наличие данных в таблице.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
|
|
@ -2337,7 +2365,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если таблица пуста или заголовки не соответствуют ожидаемым.</p>
|
||||
<p>Если таблица пуста или заголовки неверны.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2347,18 +2375,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
|
|
@ -2381,23 +2398,36 @@
|
|||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="normal">83</span>
|
||||
<span class="normal">84</span>
|
||||
<span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span>
|
||||
<span class="normal">94</span>
|
||||
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет содержимое таблицы сервисов.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> - Наличие заголовков таблицы</span>
|
||||
<span class="sd"> - Соответствие заголовков ожидаемым значениям</span>
|
||||
<span class="sd"> - Наличие хотя бы одной строки с данными</span>
|
||||
<span class="sd"> Проверяет заголовки и наличие данных в таблице.</span>
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если таблица пуста или заголовки не соответствуют ожидаемым.</span>
|
||||
<span class="sd"> AssertionError: Если таблица пуста или заголовки неверны.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">expected_headers</span> <span class="o">=</span> <span class="p">[</span>
|
||||
<span class="s1">'Контейнер'</span><span class="p">,</span>
|
||||
<span class="s1">'Время создания'</span><span class="p">,</span>
|
||||
<span class="s1">'Статус'</span><span class="p">,</span>
|
||||
<span class="s1">'Время работы'</span><span class="p">,</span>
|
||||
<span class="s1">'Image ID'</span><span class="p">,</span>
|
||||
<span class="s1">'Контейнер'</span><span class="p">,</span>
|
||||
<span class="s1">'Время создания'</span><span class="p">,</span>
|
||||
<span class="s1">'Статус'</span><span class="p">,</span>
|
||||
<span class="s1">'Время работы'</span><span class="p">,</span>
|
||||
<span class="s1">'Image ID'</span><span class="p">,</span>
|
||||
<span class="s1">'Image ТЭГ'</span>
|
||||
<span class="p">]</span>
|
||||
|
||||
|
|
@ -2409,7 +2439,7 @@
|
|||
<span class="n">actual_headers</span> <span class="o">=</span> <span class="n">table_content</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">check_equals</span><span class="p">(</span>
|
||||
<span class="n">actual_headers</span><span class="p">,</span>
|
||||
<span class="n">actual_headers</span><span class="p">,</span>
|
||||
<span class="n">expected_headers</span><span class="p">,</span>
|
||||
<span class="sa">f</span><span class="s2">"Expected table headers </span><span class="si">{</span><span class="n">expected_headers</span><span class="si">}</span><span class="s2"> are not equal </span><span class="si">{</span><span class="n">actual_headers</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="p">)</span>
|
||||
|
|
@ -2451,7 +2481,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если первая строка не видна.</p>
|
||||
<p>Если строка не видна.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2461,18 +2491,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">108</span>
|
||||
<span class="normal">109</span>
|
||||
<span class="normal">110</span>
|
||||
<span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость первой строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если первая строка не видна.</span>
|
||||
<span class="sd"> AssertionError: Если строка не видна.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_first_row_visibility</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2509,7 +2541,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если последняя строка не видна.</p>
|
||||
<p>Если строка не видна.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2519,18 +2551,20 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">103</span>
|
||||
<span class="normal">104</span>
|
||||
<span class="normal">105</span>
|
||||
<span class="normal">106</span>
|
||||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
<span class="normal">109</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span>
|
||||
<span class="normal">122</span>
|
||||
<span class="normal">123</span>
|
||||
<span class="normal">124</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет видимость последней строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если последняя строка не видна.</span>
|
||||
<span class="sd"> AssertionError: Если строка не видна.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_last_row_visibility</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2608,29 +2642,31 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">111</span>
|
||||
<span class="normal">112</span>
|
||||
<span class="normal">113</span>
|
||||
<span class="normal">114</span>
|
||||
<span class="normal">115</span>
|
||||
<span class="normal">116</span>
|
||||
<span class="normal">117</span>
|
||||
<span class="normal">118</span>
|
||||
<span class="normal">119</span>
|
||||
<span class="normal">120</span>
|
||||
<span class="normal">121</span>
|
||||
<span class="normal">122</span>
|
||||
<span class="normal">123</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">126</span>
|
||||
<span class="normal">127</span>
|
||||
<span class="normal">128</span>
|
||||
<span class="normal">129</span>
|
||||
<span class="normal">130</span>
|
||||
<span class="normal">131</span>
|
||||
<span class="normal">132</span>
|
||||
<span class="normal">133</span>
|
||||
<span class="normal">134</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span>
|
||||
<span class="normal">138</span>
|
||||
<span class="normal">139</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет выделение указанной строки таблицы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> row_index (int): Индекс проверяемой строки.</span>
|
||||
<span class="sd"> row_index: Индекс проверяемой строки.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если строка не выделена.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_row_highlighting</span><span class="p">(</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="n">row_index</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2678,23 +2714,25 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">85</span>
|
||||
<span class="normal">86</span>
|
||||
<span class="normal">87</span>
|
||||
<span class="normal">88</span>
|
||||
<span class="normal">89</span>
|
||||
<span class="normal">90</span>
|
||||
<span class="normal">91</span>
|
||||
<span class="normal">92</span>
|
||||
<span class="normal">93</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span>
|
||||
<span class="normal">104</span>
|
||||
<span class="normal">105</span>
|
||||
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет возможность вертикальной прокрутки таблицы.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True если прокрутка возможна, иначе False.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">is_scrollable_vertically</span><span class="p">(</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
@ -2712,7 +2750,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Возвращает количество строк в таблице сервисов (без учёта заголовка).</p>
|
||||
<p>Возвращает количество строк в таблице (без заголовка).</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Returns:</span></p>
|
||||
|
|
@ -2763,23 +2801,24 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_rows_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает количество строк в таблице сервисов (без учёта заголовка).</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_rows_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Возвращает количество строк в таблице (без заголовка).</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> int: Количество строк с данными.</span>
|
||||
|
|
@ -2787,6 +2826,7 @@
|
|||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если таблица пуста.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
|
||||
<span class="n">rows_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
|
||||
|
||||
|
|
@ -2816,10 +2856,12 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает таблицу сервисов вниз."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2843,10 +2885,12 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Прокручивает таблицу сервисов вверх."""</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2893,23 +2937,25 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">133</span>
|
||||
<span class="normal">134</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span>
|
||||
<span class="normal">138</span>
|
||||
<span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_services_table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">150</span>
|
||||
<span class="normal">151</span>
|
||||
<span class="normal">152</span>
|
||||
<span class="normal">153</span>
|
||||
<span class="normal">154</span>
|
||||
<span class="normal">155</span>
|
||||
<span class="normal">156</span>
|
||||
<span class="normal">157</span>
|
||||
<span class="normal">158</span>
|
||||
<span class="normal">159</span>
|
||||
<span class="normal">160</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_services_table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие таблицы сервисов.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если таблица отсутствует.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span>
|
||||
<span class="s2">"Service statuses table is missing"</span>
|
||||
<span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2957,19 +3003,21 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">125</span>
|
||||
<span class="normal">126</span>
|
||||
<span class="normal">127</span>
|
||||
<span class="normal">128</span>
|
||||
<span class="normal">129</span>
|
||||
<span class="normal">130</span>
|
||||
<span class="normal">131</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span>
|
||||
<span class="normal">147</span>
|
||||
<span class="normal">148</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет наличие тулбара на вкладке.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если тулбар отсутствует.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_presence</span><span class="p">(</span><span class="s2">"Toolbar is missing"</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_toolbar_presence</span><span class="p">(</span><span class="s2">"Toolbar is missing"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -1752,6 +1752,10 @@
|
|||
<a id="tests.components.test_json_container"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль тестов для контейнера с JSON-данными.</p>
|
||||
<p>Содержит тесты для проверки функциональности контейнера
|
||||
с JSON-данными на вкладке лицензий.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1793,13 +1797,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_json_container.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
|
|
@ -1840,72 +1838,46 @@
|
|||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestJsonContainer</span><span class="p">:</span>
|
||||
<span class="normal">55</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestJsonContainer</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Тесты для проверки контейнера с JSON-данными на вкладке лицензий."""</span>
|
||||
|
||||
<span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для настройки тестового окружения.</span>
|
||||
|
||||
<span class="sd"> Выполняет:</span>
|
||||
<span class="sd"> 1. Авторизацию в системе</span>
|
||||
<span class="sd"> 2. Переход на главную страницу</span>
|
||||
<span class="sd"> 3. Проверку видимости панели навигации</span>
|
||||
<span class="sd"> 4. Переход на вкладку 'Лицензии' через меню настроек</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Настраивает тестовое окружение перед каждым тестом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка видимости панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Настройки" в главном меню</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Обслуживание и диагностика" в меню конфигурации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Лицензии" в меню конфигурации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Лицензии"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест проверки вертикальной прокрутки в контейнере с JSON-данными.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> 1. Наличие возможности вертикальной прокрутки</span>
|
||||
<span class="sd"> 2. Корректность работы прокрутки вниз и вверх</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет вертикальную прокрутку в контейнере с JSON-данными.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
|
||||
<span class="sd"> Steps:</span>
|
||||
<span class="sd"> 1. Проверяет наличие вертикальной прокрутки</span>
|
||||
<span class="sd"> 2. Прокручивает контейнер вниз</span>
|
||||
<span class="sd"> 3. Прокручивает контейнер вверх</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Инициализация страницы с лицензиями</span>
|
||||
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия вертикальной прокрутки</span>
|
||||
<span class="n">is_scrollable</span> <span class="o">=</span> <span class="n">lt</span><span class="o">.</span><span class="n">check_json_container_verticall_scrolling</span><span class="p">()</span>
|
||||
<span class="k">assert</span> <span class="n">is_scrollable</span><span class="p">,</span> <span class="s2">"Should be verticall scrolling"</span>
|
||||
|
||||
<span class="c1"># Прокрутка вниз с задержкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">scroll_json_container_down</span><span class="p">()</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">3000</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Прокрутка вверх с задержкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">scroll_json_container_up</span><span class="p">()</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">2000</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -1934,12 +1906,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Фикстура для настройки тестового окружения.</p>
|
||||
<p>Выполняет:
|
||||
1. Авторизацию в системе
|
||||
2. Переход на главную страницу
|
||||
3. Проверку видимости панели навигации
|
||||
4. Переход на вкладку 'Лицензии' через меню настроек</p>
|
||||
<p>Настраивает тестовое окружение перед каждым тестом.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1958,10 +1925,11 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Фикстура браузера</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -1974,13 +1942,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_json_container.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
|
|
@ -1995,43 +1957,21 @@
|
|||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для настройки тестового окружения.</span>
|
||||
|
||||
<span class="sd"> Выполняет:</span>
|
||||
<span class="sd"> 1. Авторизацию в системе</span>
|
||||
<span class="sd"> 2. Переход на главную страницу</span>
|
||||
<span class="sd"> 3. Проверку видимости панели навигации</span>
|
||||
<span class="sd"> 4. Переход на вкладку 'Лицензии' через меню настроек</span>
|
||||
<span class="normal">32</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Настраивает тестовое окружение перед каждым тестом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка видимости панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Настройки" в главном меню</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Обслуживание и диагностика" в меню конфигурации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Лицензии" в меню конфигурации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Лицензии"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2050,10 +1990,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест проверки вертикальной прокрутки в контейнере с JSON-данными.</p>
|
||||
<p>Проверяет:
|
||||
1. Наличие возможности вертикальной прокрутки
|
||||
2. Корректность работы прокрутки вниз и вверх</p>
|
||||
<p>Проверяет вертикальную прокрутку в контейнере с JSON-данными.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2072,10 +2009,11 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Фикстура браузера</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2086,9 +2024,26 @@
|
|||
</table>
|
||||
|
||||
|
||||
<details class="steps" open>
|
||||
<summary>Steps</summary>
|
||||
<ol>
|
||||
<li>Проверяет наличие вертикальной прокрутки</li>
|
||||
<li>Прокручивает контейнер вниз</li>
|
||||
<li>Прокручивает контейнер вверх</li>
|
||||
</ol>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_json_container.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">42</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
|
|
@ -2101,38 +2056,26 @@
|
|||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест проверки вертикальной прокрутки в контейнере с JSON-данными.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> 1. Наличие возможности вертикальной прокрутки</span>
|
||||
<span class="sd"> 2. Корректность работы прокрутки вниз и вверх</span>
|
||||
<span class="normal">55</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет вертикальную прокрутку в контейнере с JSON-данными.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
|
||||
<span class="sd"> Steps:</span>
|
||||
<span class="sd"> 1. Проверяет наличие вертикальной прокрутки</span>
|
||||
<span class="sd"> 2. Прокручивает контейнер вниз</span>
|
||||
<span class="sd"> 3. Прокручивает контейнер вверх</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Инициализация страницы с лицензиями</span>
|
||||
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия вертикальной прокрутки</span>
|
||||
<span class="n">is_scrollable</span> <span class="o">=</span> <span class="n">lt</span><span class="o">.</span><span class="n">check_json_container_verticall_scrolling</span><span class="p">()</span>
|
||||
<span class="k">assert</span> <span class="n">is_scrollable</span><span class="p">,</span> <span class="s2">"Should be verticall scrolling"</span>
|
||||
|
||||
<span class="c1"># Прокрутка вниз с задержкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">scroll_json_container_down</span><span class="p">()</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">3000</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Прокрутка вверх с задержкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">scroll_json_container_up</span><span class="p">()</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">2000</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
|
|||
|
|
@ -1734,6 +1734,10 @@
|
|||
<a id="tests.components.test_navigation_panel"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль тестов панели навигации.</p>
|
||||
<p>Содержит тесты для проверки функциональности и прокрутки
|
||||
панели навигации в приложении.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1770,7 +1774,7 @@
|
|||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>browser: фикстура для работы с браузером</p>
|
||||
<p>browser: Фикстура для работы с браузером.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
|
@ -1780,13 +1784,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_navigation_panel.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
|
|
@ -1830,25 +1828,27 @@
|
|||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestNavigationPanel</span><span class="p">:</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestNavigationPanel</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс тестов для проверки панели навигации.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером</span>
|
||||
<span class="sd"> browser: Фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест вертикальной прокрутки панели навигации.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет вертикальную прокрутку панели навигации.</span>
|
||||
|
||||
<span class="sd"> Аргументы:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура для работы с браузером.</span>
|
||||
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> None</span>
|
||||
|
||||
<span class="sd"> Исключения:</span>
|
||||
<span class="sd"> AssertionError: если панель навигации не поддерживает вертикальную прокрутку</span>
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если панель не поддерживает прокрутку.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
|
@ -1862,8 +1862,8 @@
|
|||
|
||||
<span class="c1"># Открываем все пункты панели</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Аутентификация"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Уведомления"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Аутентификация"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Уведомления"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Zero Touch Provisioning"</span><span class="p">)</span>
|
||||
|
||||
|
|
@ -1877,9 +1877,9 @@
|
|||
<span class="n">mp</span><span class="o">.</span><span class="n">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="s2">"Панель приборов"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">3000</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Прокручиваем вниз и проверяем видимость элемента</span>
|
||||
<span class="c1"># Прокручиваем вниз и проверяем видимость элемента Настройки/ZTP/Шаблоны</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">scroll_navigation_panel_down</span><span class="p">()</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="s2">"Шаблоны"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="s2">"Шаблоны_2"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">2000</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -1907,33 +1907,66 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест вертикальной прокрутки панели навигации.</p>
|
||||
<p>Проверяет вертикальную прокрутку панели навигации.</p>
|
||||
|
||||
|
||||
<details class="аргументы" open>
|
||||
<summary>Аргументы</summary>
|
||||
<p>browser: фикстура для работы с браузером</p>
|
||||
</details>
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Фикстура для работы с браузером.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<details class="возвращает" open>
|
||||
<summary>Возвращает</summary>
|
||||
<p>None</p>
|
||||
</details>
|
||||
|
||||
<details class="исключения" open>
|
||||
<summary>Исключения</summary>
|
||||
<p>AssertionError: если панель навигации не поддерживает вертикальную прокрутку</p>
|
||||
</details>
|
||||
<p><span class="doc-section-title">Raises:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code><span title="AssertionError">AssertionError</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если панель не поддерживает прокрутку.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_navigation_panel.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
|
|
@ -1970,18 +2003,20 @@
|
|||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест вертикальной прокрутки панели навигации.</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет вертикальную прокрутку панели навигации.</span>
|
||||
|
||||
<span class="sd"> Аргументы:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура для работы с браузером.</span>
|
||||
|
||||
<span class="sd"> Возвращает:</span>
|
||||
<span class="sd"> None</span>
|
||||
|
||||
<span class="sd"> Исключения:</span>
|
||||
<span class="sd"> AssertionError: если панель навигации не поддерживает вертикальную прокрутку</span>
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> AssertionError: Если панель не поддерживает прокрутку.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="c1"># Действия:</span>
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
|
@ -1995,8 +2030,8 @@
|
|||
|
||||
<span class="c1"># Открываем все пункты панели</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Аутентификация"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Уведомления"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Аутентификация"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Уведомления"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Zero Touch Provisioning"</span><span class="p">)</span>
|
||||
|
||||
|
|
@ -2010,9 +2045,9 @@
|
|||
<span class="n">mp</span><span class="o">.</span><span class="n">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="s2">"Панель приборов"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">3000</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Прокручиваем вниз и проверяем видимость элемента</span>
|
||||
<span class="c1"># Прокручиваем вниз и проверяем видимость элемента Настройки/ZTP/Шаблоны</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">scroll_navigation_panel_down</span><span class="p">()</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="s2">"Шаблоны"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="s2">"Шаблоны_2"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">2000</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1752,6 +1752,10 @@
|
|||
<a id="tests.components.test_services_table"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль тестов таблицы статусов сервисов.</p>
|
||||
<p>Содержит тесты для проверки функциональности и прокрутки
|
||||
таблицы статусов сервисов на вкладке обслуживания.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1783,11 +1787,7 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Тесты для проверки таблицы статусов сервисов.</p>
|
||||
<p>Содержит тесты для проверки:
|
||||
- Отображения таблицы статусов сервисов
|
||||
- Содержимого таблицы
|
||||
- Возможности вертикальной прокрутки</p>
|
||||
<p>Класс тестов для проверки таблицы статусов сервисов.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1797,12 +1797,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_services_table.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
|
|
@ -1849,102 +1844,51 @@
|
|||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestServiceStatusTable</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Тесты для проверки таблицы статусов сервисов.</span>
|
||||
<span class="normal">60</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestServiceStatusTable</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс тестов для проверки таблицы статусов сервисов."""</span>
|
||||
|
||||
<span class="sd"> Содержит тесты для проверки:</span>
|
||||
<span class="sd"> - Отображения таблицы статусов сервисов</span>
|
||||
<span class="sd"> - Содержимого таблицы</span>
|
||||
<span class="sd"> - Возможности вертикальной прокрутки</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="c1"># @pytest.mark.smoke</span>
|
||||
<span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для настройки тестового окружения.</span>
|
||||
|
||||
<span class="sd"> Выполняет:</span>
|
||||
<span class="sd"> 1. Авторизацию в системе</span>
|
||||
<span class="sd"> 2. Переход на главную страницу</span>
|
||||
<span class="sd"> 3. Проверку видимости панели навигации</span>
|
||||
<span class="sd"> 4. Переход на вкладку 'Статус обслуживания'</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Настраивает тестовое окружение перед каждым тестом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Авторизация в системе</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка видимости панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Настройки" в главном меню</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Обслуживание и диагностика" в меню конфигурации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Статус обслуживания" в меню обслуживания</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_maintenance_navigation_panel_item</span><span class="p">(</span><span class="s2">"Статус обслуживания"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест проверки прокрутки таблицы статусов сервисов.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> 1. Наличие таблицы статусов сервисов</span>
|
||||
<span class="sd"> 2. Содержимое таблицы</span>
|
||||
<span class="sd"> 3. Возможность вертикальной прокрутки</span>
|
||||
<span class="sd"> 4. Видимость строк после прокрутки</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет прокрутку таблицы статусов сервисов.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
|
||||
<span class="sd"> Steps:</span>
|
||||
<span class="sd"> 1. Проверяет наличие и содержимое таблицы</span>
|
||||
<span class="sd"> 2. Проверяет возможность вертикальной прокрутки</span>
|
||||
<span class="sd"> 3. Прокручивает вниз и проверяет видимость последней строки</span>
|
||||
<span class="sd"> 4. Прокручивает вверх и проверяет видимость первой строки</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Инициализация страницы с таблицей статусов сервисов</span>
|
||||
|
||||
<span class="n">sst</span> <span class="o">=</span> <span class="n">ServiceStatusTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия таблицы</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">should_be_services_table</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Проверка содержимого таблицы</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_content</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Проверка возможности вертикальной прокрутки</span>
|
||||
<span class="n">is_scrollable_vertically</span> <span class="o">=</span> <span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_verticall_scrolling</span><span class="p">()</span>
|
||||
<span class="k">assert</span> <span class="n">is_scrollable_vertically</span><span class="p">,</span> <span class="s2">"Should be verticall scrolling"</span>
|
||||
<span class="k">assert</span> <span class="n">is_scrollable_vertically</span><span class="p">,</span> <span class="s2">"Should be vertical scrolling"</span>
|
||||
|
||||
<span class="c1"># Прокрутка вниз и проверка видимости последней строки</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">scroll_services_table_down</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_last_row_visibility</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">3000</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Прокрутка вверх и проверка видимости первой строки</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">scroll_services_table_up</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_first_row_visibility</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">2000</span><span class="p">)</span>
|
||||
|
|
@ -1974,12 +1918,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Фикстура для настройки тестового окружения.</p>
|
||||
<p>Выполняет:
|
||||
1. Авторизацию в системе
|
||||
2. Переход на главную страницу
|
||||
3. Проверку видимости панели навигации
|
||||
4. Переход на вкладку 'Статус обслуживания'</p>
|
||||
<p>Настраивает тестовое окружение перед каждым тестом.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1998,10 +1937,11 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Фикстура браузера</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2014,7 +1954,9 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_services_table.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">18</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
|
|
@ -2027,53 +1969,21 @@
|
|||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для настройки тестового окружения.</span>
|
||||
|
||||
<span class="sd"> Выполняет:</span>
|
||||
<span class="sd"> 1. Авторизацию в системе</span>
|
||||
<span class="sd"> 2. Переход на главную страницу</span>
|
||||
<span class="sd"> 3. Проверку видимости панели навигации</span>
|
||||
<span class="sd"> 4. Переход на вкладку 'Статус обслуживания'</span>
|
||||
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Настраивает тестовое окружение перед каждым тестом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Авторизация в системе</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка видимости панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Настройки" в главном меню</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Обслуживание и диагностика" в меню конфигурации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по пункту "Статус обслуживания" в меню обслуживания</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_maintenance_navigation_panel_item</span><span class="p">(</span><span class="s2">"Статус обслуживания"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2092,12 +2002,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест проверки прокрутки таблицы статусов сервисов.</p>
|
||||
<p>Проверяет:
|
||||
1. Наличие таблицы статусов сервисов
|
||||
2. Содержимое таблицы
|
||||
3. Возможность вертикальной прокрутки
|
||||
4. Видимость строк после прокрутки</p>
|
||||
<p>Проверяет прокрутку таблицы статусов сервисов.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2116,10 +2021,11 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Фикстура браузера</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2130,9 +2036,36 @@
|
|||
</table>
|
||||
|
||||
|
||||
<details class="steps" open>
|
||||
<summary>Steps</summary>
|
||||
<ol>
|
||||
<li>Проверяет наличие и содержимое таблицы</li>
|
||||
<li>Проверяет возможность вертикальной прокрутки</li>
|
||||
<li>Прокручивает вниз и проверяет видимость последней строки</li>
|
||||
<li>Прокручивает вверх и проверяет видимость первой строки</li>
|
||||
</ol>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\components\test_services_table.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">50</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
|
|
@ -2142,60 +2075,31 @@
|
|||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест проверки прокрутки таблицы статусов сервисов.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> 1. Наличие таблицы статусов сервисов</span>
|
||||
<span class="sd"> 2. Содержимое таблицы</span>
|
||||
<span class="sd"> 3. Возможность вертикальной прокрутки</span>
|
||||
<span class="sd"> 4. Видимость строк после прокрутки</span>
|
||||
<span class="normal">60</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет прокрутку таблицы статусов сервисов.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Фикстура браузера</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
|
||||
<span class="sd"> Steps:</span>
|
||||
<span class="sd"> 1. Проверяет наличие и содержимое таблицы</span>
|
||||
<span class="sd"> 2. Проверяет возможность вертикальной прокрутки</span>
|
||||
<span class="sd"> 3. Прокручивает вниз и проверяет видимость последней строки</span>
|
||||
<span class="sd"> 4. Прокручивает вверх и проверяет видимость первой строки</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Инициализация страницы с таблицей статусов сервисов</span>
|
||||
|
||||
<span class="n">sst</span> <span class="o">=</span> <span class="n">ServiceStatusTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия таблицы</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">should_be_services_table</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Проверка содержимого таблицы</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_content</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Проверка возможности вертикальной прокрутки</span>
|
||||
<span class="n">is_scrollable_vertically</span> <span class="o">=</span> <span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_verticall_scrolling</span><span class="p">()</span>
|
||||
<span class="k">assert</span> <span class="n">is_scrollable_vertically</span><span class="p">,</span> <span class="s2">"Should be verticall scrolling"</span>
|
||||
<span class="k">assert</span> <span class="n">is_scrollable_vertically</span><span class="p">,</span> <span class="s2">"Should be vertical scrolling"</span>
|
||||
|
||||
<span class="c1"># Прокрутка вниз и проверка видимости последней строки</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">scroll_services_table_down</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_last_row_visibility</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">3000</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Прокрутка вверх и проверка видимости первой строки</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">scroll_services_table_up</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_first_row_visibility</span><span class="p">()</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">2000</span><span class="p">)</span>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1245,17 +1245,17 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
TestLisenceTab
|
||||
TestLicenseTab
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="TestLisenceTab">
|
||||
<nav class="md-nav" aria-label="TestLicenseTab">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab.setup" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab.setup" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
setup
|
||||
</span>
|
||||
|
|
@ -1264,7 +1264,7 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab.test_license_tab_input_form_and_check_alert" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab.test_license_tab_input_form_and_check_alert" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
test_license_tab_input_form_and_check_alert
|
||||
</span>
|
||||
|
|
@ -1273,7 +1273,7 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab.test_lisence_tab_content" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab.test_lisence_tab_content" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
test_lisence_tab_content
|
||||
</span>
|
||||
|
|
@ -1704,17 +1704,17 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
TestLisenceTab
|
||||
TestLicenseTab
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="TestLisenceTab">
|
||||
<nav class="md-nav" aria-label="TestLicenseTab">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab.setup" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab.setup" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
setup
|
||||
</span>
|
||||
|
|
@ -1723,7 +1723,7 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab.test_license_tab_input_form_and_check_alert" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab.test_license_tab_input_form_and_check_alert" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
test_license_tab_input_form_and_check_alert
|
||||
</span>
|
||||
|
|
@ -1732,7 +1732,7 @@
|
|||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tests.e2e.test_license_tab.TestLisenceTab.test_lisence_tab_content" class="md-nav__link">
|
||||
<a href="#tests.e2e.test_license_tab.TestLicenseTab.test_lisence_tab_content" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
test_lisence_tab_content
|
||||
</span>
|
||||
|
|
@ -1770,6 +1770,10 @@
|
|||
<a id="tests.e2e.test_license_tab"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль тестов вкладки 'Лицензии'.</p>
|
||||
<p>Содержит тесты для проверки функциональности
|
||||
и содержимого вкладки лицензий.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1791,8 +1795,8 @@
|
|||
|
||||
|
||||
|
||||
<h2 id="tests.e2e.test_license_tab.TestLisenceTab" class="doc doc-heading">
|
||||
<code>TestLisenceTab</code>
|
||||
<h2 id="tests.e2e.test_license_tab.TestLicenseTab" class="doc doc-heading">
|
||||
<code>TestLicenseTab</code>
|
||||
|
||||
|
||||
</h2>
|
||||
|
|
@ -1801,14 +1805,9 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Тесты для вкладки 'Лицензии'.</p>
|
||||
<p>Класс тестов для проверки вкладки 'Лицензии'.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>browser: фикстура для работы с браузером.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1816,254 +1815,9 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_license_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 10</span>
|
||||
<span class="normal"> 11</span>
|
||||
<span class="normal"> 12</span>
|
||||
<span class="normal"> 13</span>
|
||||
<span class="normal"> 14</span>
|
||||
<span class="normal"> 15</span>
|
||||
<span class="normal"> 16</span>
|
||||
<span class="normal"> 17</span>
|
||||
<span class="normal"> 18</span>
|
||||
<span class="normal"> 19</span>
|
||||
<span class="normal"> 20</span>
|
||||
<span class="normal"> 21</span>
|
||||
<span class="normal"> 22</span>
|
||||
<span class="normal"> 23</span>
|
||||
<span class="normal"> 24</span>
|
||||
<span class="normal"> 25</span>
|
||||
<span class="normal"> 26</span>
|
||||
<span class="normal"> 27</span>
|
||||
<span class="normal"> 28</span>
|
||||
<span class="normal"> 29</span>
|
||||
<span class="normal"> 30</span>
|
||||
<span class="normal"> 31</span>
|
||||
<span class="normal"> 32</span>
|
||||
<span class="normal"> 33</span>
|
||||
<span class="normal"> 34</span>
|
||||
<span class="normal"> 35</span>
|
||||
<span class="normal"> 36</span>
|
||||
<span class="normal"> 37</span>
|
||||
<span class="normal"> 38</span>
|
||||
<span class="normal"> 39</span>
|
||||
<span class="normal"> 40</span>
|
||||
<span class="normal"> 41</span>
|
||||
<span class="normal"> 42</span>
|
||||
<span class="normal"> 43</span>
|
||||
<span class="normal"> 44</span>
|
||||
<span class="normal"> 45</span>
|
||||
<span class="normal"> 46</span>
|
||||
<span class="normal"> 47</span>
|
||||
<span class="normal"> 48</span>
|
||||
<span class="normal"> 49</span>
|
||||
<span class="normal"> 50</span>
|
||||
<span class="normal"> 51</span>
|
||||
<span class="normal"> 52</span>
|
||||
<span class="normal"> 53</span>
|
||||
<span class="normal"> 54</span>
|
||||
<span class="normal"> 55</span>
|
||||
<span class="normal"> 56</span>
|
||||
<span class="normal"> 57</span>
|
||||
<span class="normal"> 58</span>
|
||||
<span class="normal"> 59</span>
|
||||
<span class="normal"> 60</span>
|
||||
<span class="normal"> 61</span>
|
||||
<span class="normal"> 62</span>
|
||||
<span class="normal"> 63</span>
|
||||
<span class="normal"> 64</span>
|
||||
<span class="normal"> 65</span>
|
||||
<span class="normal"> 66</span>
|
||||
<span class="normal"> 67</span>
|
||||
<span class="normal"> 68</span>
|
||||
<span class="normal"> 69</span>
|
||||
<span class="normal"> 70</span>
|
||||
<span class="normal"> 71</span>
|
||||
<span class="normal"> 72</span>
|
||||
<span class="normal"> 73</span>
|
||||
<span class="normal"> 74</span>
|
||||
<span class="normal"> 75</span>
|
||||
<span class="normal"> 76</span>
|
||||
<span class="normal"> 77</span>
|
||||
<span class="normal"> 78</span>
|
||||
<span class="normal"> 79</span>
|
||||
<span class="normal"> 80</span>
|
||||
<span class="normal"> 81</span>
|
||||
<span class="normal"> 82</span>
|
||||
<span class="normal"> 83</span>
|
||||
<span class="normal"> 84</span>
|
||||
<span class="normal"> 85</span>
|
||||
<span class="normal"> 86</span>
|
||||
<span class="normal"> 87</span>
|
||||
<span class="normal"> 88</span>
|
||||
<span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestLisenceTab</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Тесты для вкладки 'Лицензии'.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Подготовка тестового окружения.</span>
|
||||
|
||||
<span class="sd"> Выполняет вход в систему и переход на вкладку 'Лицензии'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Клик по кнопке "Настройки" в главной панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по кнопке "Обслуживание и диагностика" в панели навигации настроек</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по кнопке "Лицензии" в панели навигации настроек</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Лицензии"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_lisence_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест содержимого вкладки 'Лицензии'.</span>
|
||||
|
||||
<span class="sd"> Проверяет корректность отображения содержимого вкладки.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Вкладка лицензий открыта</span>
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка содержимого таблицы статусов сервисов</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">check_content</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_license_tab_input_form_and_check_alert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест формы ввода лицензии и проверки алертов.</span>
|
||||
|
||||
<span class="sd"> Проверяет обработку различных вариантов ввода в форму лицензии.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">gen_test_data</span><span class="p">():</span>
|
||||
<span class="w"> </span><span class="sd">"""Генерация тестовых данных для проверки формы ввода лицензии.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: Список тестовых строк для проверки.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span><span class="p">)</span>
|
||||
|
||||
<span class="n">lowercase_str</span> <span class="o">=</span> <span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span> <span class="o">+</span> <span class="s2">"fffffffff"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"0"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"000000000000000000000000000000000000000000000000"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"-1"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">data</span>
|
||||
|
||||
<span class="c1"># Вкладка лицензий открыта</span>
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия пустой формы ввода лицензии</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_empty_input_form</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Ввод пустой строки</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span>
|
||||
<span class="c1"># Проверка окна с ошибкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Неверный лицензионный ключ"</span><span class="p">)</span>
|
||||
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="n">gen_test_data</span><span class="p">()</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">data_string</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
||||
<span class="c1"># Ввод некорректного значения</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="n">data_string</span><span class="p">)</span>
|
||||
<span class="c1"># Проверка окна с ошибкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Ошибка обновления лицензии"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
<div class="doc doc-children">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="tests.e2e.test_license_tab.TestLisenceTab.setup" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">setup</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Подготовка тестового окружения.</p>
|
||||
<p>Выполняет вход в систему и переход на вкладку 'Лицензии'.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>фикстура для работы с браузером.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_license_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">17</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
|
|
@ -2088,228 +1842,9 @@
|
|||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Подготовка тестового окружения.</span>
|
||||
|
||||
<span class="sd"> Выполняет вход в систему и переход на вкладку 'Лицензии'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Клик по кнопке "Настройки" в главной панели навигации</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по кнопке "Обслуживание и диагностика" в панели навигации настроек</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Клик по кнопке "Лицензии" в панели навигации настроек</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Лицензии"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="tests.e2e.test_license_tab.TestLisenceTab.test_license_tab_input_form_and_check_alert" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">test_license_tab_input_form_and_check_alert</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест формы ввода лицензии и проверки алертов.</p>
|
||||
<p>Проверяет обработку различных вариантов ввода в форму лицензии.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>фикстура для работы с браузером.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_license_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 58</span>
|
||||
<span class="normal"> 59</span>
|
||||
<span class="normal"> 60</span>
|
||||
<span class="normal"> 61</span>
|
||||
<span class="normal"> 62</span>
|
||||
<span class="normal"> 63</span>
|
||||
<span class="normal"> 64</span>
|
||||
<span class="normal"> 65</span>
|
||||
<span class="normal"> 66</span>
|
||||
<span class="normal"> 67</span>
|
||||
<span class="normal"> 68</span>
|
||||
<span class="normal"> 69</span>
|
||||
<span class="normal"> 70</span>
|
||||
<span class="normal"> 71</span>
|
||||
<span class="normal"> 72</span>
|
||||
<span class="normal"> 73</span>
|
||||
<span class="normal"> 74</span>
|
||||
<span class="normal"> 75</span>
|
||||
<span class="normal"> 76</span>
|
||||
<span class="normal"> 77</span>
|
||||
<span class="normal"> 78</span>
|
||||
<span class="normal"> 79</span>
|
||||
<span class="normal"> 80</span>
|
||||
<span class="normal"> 81</span>
|
||||
<span class="normal"> 82</span>
|
||||
<span class="normal"> 83</span>
|
||||
<span class="normal"> 84</span>
|
||||
<span class="normal"> 85</span>
|
||||
<span class="normal"> 86</span>
|
||||
<span class="normal"> 87</span>
|
||||
<span class="normal"> 88</span>
|
||||
<span class="normal"> 89</span>
|
||||
<span class="normal"> 90</span>
|
||||
<span class="normal"> 91</span>
|
||||
<span class="normal"> 92</span>
|
||||
<span class="normal"> 93</span>
|
||||
<span class="normal"> 94</span>
|
||||
<span class="normal"> 95</span>
|
||||
<span class="normal"> 96</span>
|
||||
<span class="normal"> 97</span>
|
||||
<span class="normal"> 98</span>
|
||||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_license_tab_input_form_and_check_alert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест формы ввода лицензии и проверки алертов.</span>
|
||||
|
||||
<span class="sd"> Проверяет обработку различных вариантов ввода в форму лицензии.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">gen_test_data</span><span class="p">():</span>
|
||||
<span class="w"> </span><span class="sd">"""Генерация тестовых данных для проверки формы ввода лицензии.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> list: Список тестовых строк для проверки.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span><span class="p">)</span>
|
||||
|
||||
<span class="n">lowercase_str</span> <span class="o">=</span> <span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span> <span class="o">+</span> <span class="s2">"fffffffff"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"0"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"000000000000000000000000000000000000000000000000"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"-1"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">data</span>
|
||||
|
||||
<span class="c1"># Вкладка лицензий открыта</span>
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка наличия пустой формы ввода лицензии</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_empty_input_form</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Ввод пустой строки</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span>
|
||||
<span class="c1"># Проверка окна с ошибкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Неверный лицензионный ключ"</span><span class="p">)</span>
|
||||
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="n">gen_test_data</span><span class="p">()</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">data_string</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
||||
<span class="c1"># Ввод некорректного значения</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="n">data_string</span><span class="p">)</span>
|
||||
<span class="c1"># Проверка окна с ошибкой</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Ошибка обновления лицензии"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="tests.e2e.test_license_tab.TestLisenceTab.test_lisence_tab_content" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">test_lisence_tab_content</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест содержимого вкладки 'Лицензии'.</p>
|
||||
<p>Проверяет корректность отображения содержимого вкладки.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>фикстура для работы с браузером.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_license_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">44</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
|
|
@ -2321,18 +1856,390 @@
|
|||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_lisence_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест содержимого вкладки 'Лицензии'.</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestLicenseTab</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс тестов для проверки вкладки 'Лицензии'."""</span>
|
||||
|
||||
<span class="sd"> Проверяет корректность отображения содержимого вкладки.</span>
|
||||
<span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Настраивает тестовое окружение перед каждым тестом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Лицензии"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_lisence_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет содержимое вкладки 'Лицензии'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">check_content</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_license_tab_input_form_and_check_alert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет форму ввода лицензии и отображение алертов.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">gen_test_data</span><span class="p">()</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Генерирует тестовые данные для проверки формы.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> List[str]: Список тестовых строк лицензий.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span><span class="p">)</span>
|
||||
|
||||
<span class="n">lowercase_str</span> <span class="o">=</span> <span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span> <span class="o">+</span> <span class="s2">"fffffffff"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"0"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"000000000000000000000000000000000000000000000000"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"-1"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">data</span>
|
||||
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_empty_input_form</span><span class="p">()</span>
|
||||
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Неверный лицензионный ключ"</span><span class="p">)</span>
|
||||
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="n">gen_test_data</span><span class="p">()</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">data_string</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="n">data_string</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Ошибка обновления лицензии"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
<div class="doc doc-children">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="tests.e2e.test_license_tab.TestLicenseTab.setup" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">setup</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Настраивает тестовое окружение перед каждым тестом.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_license_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Настраивает тестовое окружение перед каждым тестом.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># Вкладка лицензий открыта</span>
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка содержимого таблицы статусов сервисов</span>
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">"Настройки"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Обслуживание и диагностика"</span><span class="p">)</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_configuration_navigation_panel_item</span><span class="p">(</span><span class="s2">"Лицензии"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="tests.e2e.test_license_tab.TestLicenseTab.test_license_tab_input_form_and_check_alert" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">test_license_tab_input_form_and_check_alert</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет форму ввода лицензии и отображение алертов.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_license_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
<span class="normal">74</span>
|
||||
<span class="normal">75</span>
|
||||
<span class="normal">76</span>
|
||||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_license_tab_input_form_and_check_alert</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет форму ввода лицензии и отображение алертов.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">gen_test_data</span><span class="p">()</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
||||
<span class="w"> </span><span class="sd">"""Генерирует тестовые данные для проверки формы.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> List[str]: Список тестовых строк лицензий.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">):</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span><span class="p">)</span>
|
||||
|
||||
<span class="n">lowercase_str</span> <span class="o">=</span> <span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">lowercase_str</span> <span class="o">+</span> <span class="s2">"fffffffff"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"0"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"000000000000000000000000000000000000000000000000"</span><span class="p">)</span>
|
||||
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"-1"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">data</span>
|
||||
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_empty_input_form</span><span class="p">()</span>
|
||||
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Неверный лицензионный ключ"</span><span class="p">)</span>
|
||||
|
||||
<span class="n">data</span> <span class="o">=</span> <span class="n">gen_test_data</span><span class="p">()</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">data_string</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">fill_license_input_form</span><span class="p">(</span><span class="n">data_string</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">should_be_error_alert_window_with_text</span><span class="p">(</span><span class="s2">"Ошибка обновления лицензии"</span><span class="p">)</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="tests.e2e.test_license_tab.TestLicenseTab.test_lisence_tab_content" class="doc doc-heading">
|
||||
<code class="highlight language-python"><span class="n">test_lisence_tab_content</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span></code>
|
||||
|
||||
</h3>
|
||||
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет содержимое вкладки 'Лицензии'.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_license_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_lisence_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет содержимое вкладки 'Лицензии'.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lt</span> <span class="o">=</span> <span class="n">LicenseTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lt</span><span class="o">.</span><span class="n">check_content</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1770,6 +1770,10 @@
|
|||
<a id="tests.e2e.test_login"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль тестов авторизации.</p>
|
||||
<p>Содержит тесты для проверки функционала
|
||||
входа и выхода из системы.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1801,14 +1805,9 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Тесты для функционала входа и выхода из системы.</p>
|
||||
<p>Класс тестов для проверки авторизации.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>browser: фикстура для работы с браузером.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1816,11 +1815,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_login.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
|
|
@ -1854,56 +1849,40 @@
|
|||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestLogin</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Тесты для функционала входа и выхода из системы.</span>
|
||||
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestLogin</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс тестов для проверки авторизации."""</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест успешного входа в систему.</span>
|
||||
|
||||
<span class="sd"> Проверяет корректность авторизации с валидными данными.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет успешный вход в систему.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_unsuccessful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест неудачного входа в систему.</span>
|
||||
|
||||
<span class="sd"> Проверяет обработку невалидных данных при авторизации.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_unsuccessful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет вход с неверными учетными данными.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_unsuccessful_login</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login_and_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест успешного входа и выхода из системы.</span>
|
||||
|
||||
<span class="sd"> Проверяет полный цикл авторизации и деавторизации.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login_and_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет успешный вход и выход из системы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Выполнение выхода из системы</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">do_logout</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -1931,8 +1910,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест успешного входа в систему.</p>
|
||||
<p>Проверяет корректность авторизации с валидными данными.</p>
|
||||
<p>Проверяет успешный вход в систему.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1951,10 +1929,11 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>фикстура для работы с браузером.</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -1975,15 +1954,13 @@
|
|||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест успешного входа в систему.</span>
|
||||
|
||||
<span class="sd"> Проверяет корректность авторизации с валидными данными.</span>
|
||||
<span class="normal">22</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет успешный вход в систему.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2003,8 +1980,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест успешного входа и выхода из системы.</p>
|
||||
<p>Проверяет полный цикл авторизации и деавторизации.</p>
|
||||
<p>Проверяет успешный вход и выход из системы.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2023,10 +1999,11 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>фикстура для работы с браузером.</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2039,7 +2016,9 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_login.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">36</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
|
|
@ -2048,27 +2027,17 @@
|
|||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login_and_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест успешного входа и выхода из системы.</span>
|
||||
|
||||
<span class="sd"> Проверяет полный цикл авторизации и деавторизации.</span>
|
||||
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_successful_login_and_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет успешный вход и выход из системы.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
<span class="c1"># Переход на главную страницу</span>
|
||||
<span class="n">mp</span> <span class="o">=</span> <span class="n">MainPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Выполнение выхода из системы</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">do_logout</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
@ -2087,8 +2056,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест неудачного входа в систему.</p>
|
||||
<p>Проверяет обработку невалидных данных при авторизации.</p>
|
||||
<p>Проверяет вход с неверными учетными данными.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2107,10 +2075,11 @@
|
|||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>фикстура для работы с браузером.</p>
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2123,23 +2092,21 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_login.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">25</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_unsuccessful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест неудачного входа в систему.</span>
|
||||
|
||||
<span class="sd"> Проверяет обработку невалидных данных при авторизации.</span>
|
||||
<span class="normal">32</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_unsuccessful_login</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет вход с неверными учетными данными.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: фикстура для работы с браузером.</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_unsuccessful_login</span><span class="p">()</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
|
|||
|
|
@ -1770,6 +1770,10 @@
|
|||
<a id="tests.e2e.test_service_status_tab"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль тестов вкладки 'Статус обслуживания'.</p>
|
||||
<p>Содержит тесты для проверки отображения и функциональности
|
||||
элементов вкладки статусов сервисов.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1801,8 +1805,7 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Набор тестов для вкладки 'Статус обслуживания'.</p>
|
||||
<p>Проверяет корректность отображения и функциональность элементов вкладки.</p>
|
||||
<p>Класс тестов для проверки вкладки 'Статус обслуживания'.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1812,15 +1815,7 @@
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
|
|
@ -1885,20 +1880,20 @@
|
|||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestServiceStatusTab</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Набор тестов для вкладки 'Статус обслуживания'.</span>
|
||||
|
||||
<span class="sd"> Проверяет корректность отображения и функциональность элементов вкладки.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestServiceStatusTab</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс тестов для проверки вкладки 'Статус обслуживания'."""</span>
|
||||
|
||||
<span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для подготовки тестового окружения.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Подготавливает тестовое окружение.</span>
|
||||
|
||||
<span class="sd"> Выполняет:</span>
|
||||
<span class="sd"> 1. Авторизацию в системе</span>
|
||||
<span class="sd"> 2. Переход на вкладку 'Статус обслуживания'</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
|
|
@ -1917,14 +1912,13 @@
|
|||
<span class="c1"># Клик по пункту 'Статус обслуживания' в панели навигации обслуживания</span>
|
||||
<span class="n">mp</span><span class="o">.</span><span class="n">click_maintenance_navigation_panel_item</span><span class="p">(</span><span class="s2">"Статус обслуживания"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест содержимого вкладки 'Статус обслуживания'.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет содержимое вкладки 'Статус обслуживания'.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> 1. Наличие тулбара</span>
|
||||
<span class="sd"> 2. Наличие таблицы сервисов</span>
|
||||
<span class="sd"> 3. Корректность содержимого таблицы</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">sst</span> <span class="o">=</span> <span class="n">ServiceStatusTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка тулбара вкладки</span>
|
||||
|
|
@ -1936,14 +1930,13 @@
|
|||
<span class="c1"># Проверка содержимого таблицы сервисов</span>
|
||||
<span class="n">sst</span><span class="o">.</span><span class="n">check_services_table_content</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест выделения строк в таблице сервисов.</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет выделение строк в таблице сервисов.</span>
|
||||
|
||||
<span class="sd"> Проверяет выделение строк:</span>
|
||||
<span class="sd"> 1. Первой строки</span>
|
||||
<span class="sd"> 2. Последней строки</span>
|
||||
<span class="sd"> 3. Строки в середине таблицы</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">sst</span> <span class="o">=</span> <span class="n">ServiceStatusTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка тулбара вкладки</span>
|
||||
|
|
@ -1985,20 +1978,43 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Фикстура для подготовки тестового окружения.</p>
|
||||
<p>Выполняет:
|
||||
1. Авторизацию в системе
|
||||
2. Переход на вкладку 'Статус обслуживания'</p>
|
||||
<p>Подготавливает тестовое окружение.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
|
|
@ -2017,14 +2033,19 @@
|
|||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Фикстура для подготовки тестового окружения.</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">"function"</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Подготавливает тестовое окружение.</span>
|
||||
|
||||
<span class="sd"> Выполняет:</span>
|
||||
<span class="sd"> 1. Авторизацию в системе</span>
|
||||
<span class="sd"> 2. Переход на вкладку 'Статус обслуживания'</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">lp</span> <span class="o">=</span> <span class="n">LoginPage</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
<span class="n">lp</span><span class="o">.</span><span class="n">do_login</span><span class="p">()</span>
|
||||
|
||||
|
|
@ -2059,21 +2080,43 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест содержимого вкладки 'Статус обслуживания'.</p>
|
||||
<p>Проверяет:
|
||||
1. Наличие тулбара
|
||||
2. Наличие таблицы сервисов
|
||||
3. Корректность содержимого таблицы</p>
|
||||
<p>Проверяет содержимое вкладки 'Статус обслуживания'.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
|
|
@ -2085,14 +2128,17 @@
|
|||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест содержимого вкладки 'Статус обслуживания'.</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет содержимое вкладки 'Статус обслуживания'.</span>
|
||||
|
||||
<span class="sd"> Проверяет:</span>
|
||||
<span class="sd"> 1. Наличие тулбара</span>
|
||||
<span class="sd"> 2. Наличие таблицы сервисов</span>
|
||||
<span class="sd"> 3. Корректность содержимого таблицы</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">sst</span> <span class="o">=</span> <span class="n">ServiceStatusTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка тулбара вкладки</span>
|
||||
|
|
@ -2120,20 +2166,43 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Тест выделения строк в таблице сервисов.</p>
|
||||
<p>Проверяет выделение строк:
|
||||
1. Первой строки
|
||||
2. Последней строки
|
||||
3. Строки в середине таблицы</p>
|
||||
<p>Проверяет выделение строк в таблице сервисов.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Default</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="doc-section-item">
|
||||
<td>
|
||||
<code>browser</code>
|
||||
</td>
|
||||
<td>
|
||||
<code><span title="playwright.sync_api.Page">Page</span></code>
|
||||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Экземпляр страницы Playwright.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<em>required</em>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tests\e2e\test_service_status_tab.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
|
|
@ -2151,14 +2220,16 @@
|
|||
<span class="normal">77</span>
|
||||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Тест выделения строк в таблице сервисов.</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_service_status_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет выделение строк в таблице сервисов.</span>
|
||||
|
||||
<span class="sd"> Проверяет выделение строк:</span>
|
||||
<span class="sd"> 1. Первой строки</span>
|
||||
<span class="sd"> 2. Последней строки</span>
|
||||
<span class="sd"> 3. Строки в середине таблицы</span>
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> browser: Экземпляр страницы Playwright.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">sst</span> <span class="o">=</span> <span class="n">ServiceStatusTab</span><span class="p">(</span><span class="n">browser</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Проверка тулбара вкладки</span>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1541,21 +1541,6 @@
|
|||
</span>
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="fix_python_project">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tools.fix_python_project--python-project-fixer-fix_python_projectpy" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
Python Project Fixer (fix_python_project.py)
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
|
|
@ -1748,21 +1733,6 @@
|
|||
</span>
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="fix_python_project">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#tools.fix_python_project--python-project-fixer-fix_python_projectpy" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
Python Project Fixer (fix_python_project.py)
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
|
|
@ -1868,11 +1838,11 @@
|
|||
<a id="tools.fix_python_project"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<h3 id="tools.fix_python_project--python-project-fixer-fix_python_projectpy">Python Project Fixer (fix_python_project.py)</h3>
|
||||
<p>Автоматически исправляет структуру Python-проекта:
|
||||
1. Удаляет BOM-маркеры из текстовых файлов (.py, .json, .txt)
|
||||
2. Создаёт недостающие <strong>init</strong>.py файлы (игнорируя служебные папки)
|
||||
3. Сохраняет подробный лог всех выполненных операций</p>
|
||||
<p>Модуль исправления структуры Python-проекта.</p>
|
||||
<p>Автоматически выполняет:
|
||||
1. Удаление BOM-маркеров из файлов
|
||||
2. Создание недостающих <strong>init</strong>.py
|
||||
3. Логирование всех операций</p>
|
||||
<p>Использование: python fix_python_project.py [путь_к_проекту]</p>
|
||||
|
||||
|
||||
|
|
@ -1906,13 +1876,13 @@
|
|||
<div class="doc doc-contents ">
|
||||
|
||||
|
||||
<p>Основной класс для исправления структуры Python-проекта.</p>
|
||||
<p>Исправляет структуру Python-проекта.</p>
|
||||
|
||||
|
||||
<details class="атрибуты" open>
|
||||
<summary>Атрибуты</summary>
|
||||
<p>root_dir (str): Корневая директория проекта.
|
||||
log (List[str]): Список записей лога выполненных операций.</p>
|
||||
<p>root_dir: Корневая директория проекта.
|
||||
log: Лог выполненных операций.</p>
|
||||
</details>
|
||||
|
||||
|
||||
|
|
@ -1922,7 +1892,8 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tools\fix_python_project.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 26</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 25</span>
|
||||
<span class="normal"> 26</span>
|
||||
<span class="normal"> 27</span>
|
||||
<span class="normal"> 28</span>
|
||||
<span class="normal"> 29</span>
|
||||
|
|
@ -2042,37 +2013,39 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="normal">143</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ProjectFixer</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Основной класс для исправления структуры Python-проекта.</span>
|
||||
<span class="normal">146</span>
|
||||
<span class="normal">147</span>
|
||||
<span class="normal">148</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ProjectFixer</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Исправляет структуру Python-проекта.</span>
|
||||
|
||||
<span class="sd"> Атрибуты:</span>
|
||||
<span class="sd"> root_dir (str): Корневая директория проекта.</span>
|
||||
<span class="sd"> log (List[str]): Список записей лога выполненных операций.</span>
|
||||
<span class="sd"> root_dir: Корневая директория проекта.</span>
|
||||
<span class="sd"> log: Лог выполненных операций.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">root_dir</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'.'</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Инициализирует экземпляр ProjectFixer.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> root_dir (str): Корневая директория проекта. По умолчанию текущая директория ('.').</span>
|
||||
<span class="sd"> root_dir: Корневая директория проекта. По умолчанию '.'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">root_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">root_dir</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">remove_bom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepath</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Удаляет BOM-маркер из файла, если он присутствует.</span>
|
||||
|
||||
<span class="sd"> Обрабатывает все файлы, включая находящиеся в tests/.</span>
|
||||
<span class="w"> </span><span class="sd">"""Удаляет BOM-маркер из файла.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> filepath (str): Путь к файлу для обработки.</span>
|
||||
<span class="sd"> filepath: Путь к файлу.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если BOM был удалён, False в противном случае.</span>
|
||||
<span class="sd"> bool: True если BOM был удалён.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если произошла ошибка при чтении/записи файла.</span>
|
||||
<span class="sd"> Exception: При ошибке чтения/записи.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
<span class="n">content</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
|
||||
|
|
@ -2087,29 +2060,29 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="k">return</span> <span class="kc">False</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">should_skip_init</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет, нужно ли пропустить создание __init__.py в директории.</span>
|
||||
|
||||
<span class="sd"> Игнорирует служебные папки (tests/, .git/ и др.).</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет нужно ли пропустить директорию.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> dir_path (str): Путь к проверяемой директории.</span>
|
||||
<span class="sd"> dir_path: Путь к директории.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если директорию следует пропустить.</span>
|
||||
<span class="sd"> bool: True если директорию нужно пропустить.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">dir_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">dir_path</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">dir_name</span> <span class="ow">in</span> <span class="n">INIT_IGNORED_DIRS</span> <span class="ow">or</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">dir_name</span> <span class="ow">in</span> <span class="n">INIT_IGNORED_DIRS</span> <span class="ow">or</span>
|
||||
<span class="n">dir_name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'.'</span><span class="p">))</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">needs_init_py</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Определяет, требуется ли создание __init__.py в директории.</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет нужно ли создать __init__.py.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> dir_path (str): Путь к проверяемой директории.</span>
|
||||
<span class="sd"> dir_path: Путь к директории.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если __init__.py отсутствует, но требуется.</span>
|
||||
<span class="sd"> bool: True если __init__.py требуется.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">should_skip_init</span><span class="p">(</span><span class="n">dir_path</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="kc">False</span>
|
||||
|
||||
|
|
@ -2122,17 +2095,18 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="k">return</span> <span class="kc">False</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">create_init_py</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создаёт файл __init__.py в указанной директории.</span>
|
||||
<span class="w"> </span><span class="sd">"""Создаёт файл __init__.py.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> dir_path (str): Путь к директории для создания __init__.py.</span>
|
||||
<span class="sd"> dir_path: Путь к директории.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если файл был успешно создан.</span>
|
||||
<span class="sd"> bool: True если файл создан.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если произошла ошибка при создании файла.</span>
|
||||
<span class="sd"> Exception: При ошибке создания.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">init_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dir_path</span><span class="p">,</span> <span class="s1">'__init__.py'</span><span class="p">)</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">init_path</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
|
|
@ -2144,7 +2118,8 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="k">return</span> <span class="kc">False</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">process_directory</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Рекурсивно обрабатывает проект, применяя все исправления."""</span>
|
||||
<span class="w"> </span><span class="sd">"""Рекурсивно обрабатывает проект."""</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root_dir</span><span class="p">):</span>
|
||||
<span class="c1"># Обработка файлов с целевыми расширениями</span>
|
||||
<span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
|
||||
|
|
@ -2156,11 +2131,12 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="bp">self</span><span class="o">.</span><span class="n">create_init_py</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span><span class="w"> </span><span class="nf">save_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">log_file</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'project_fix.log'</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Сохраняет лог выполненных операций в файл.</span>
|
||||
<span class="w"> </span><span class="sd">"""Сохраняет лог операций в файл.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> log_file (str): Имя файла для сохранения лога. По умолчанию 'project_fix.log'.</span>
|
||||
<span class="sd"> log_file: Имя файла лога. По умолчанию 'project_fix.log'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">log_file</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">))</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2212,7 +2188,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Корневая директория проекта. По умолчанию текущая директория ('.').</p>
|
||||
<p>Корневая директория проекта. По умолчанию '.'.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2225,7 +2201,8 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tools\fix_python_project.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">34</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
|
|
@ -2236,8 +2213,9 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="w"> </span><span class="sd">"""Инициализирует экземпляр ProjectFixer.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> root_dir (str): Корневая директория проекта. По умолчанию текущая директория ('.').</span>
|
||||
<span class="sd"> root_dir: Корневая директория проекта. По умолчанию '.'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">root_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">root_dir</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2257,7 +2235,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Создаёт файл <strong>init</strong>.py в указанной директории.</p>
|
||||
<p>Создаёт файл <strong>init</strong>.py.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2280,7 +2258,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Путь к директории для создания <strong>init</strong>.py.</p>
|
||||
<p>Путь к директории.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2306,7 +2284,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True, если файл был успешно создан.</p>
|
||||
<p>True если файл создан.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2329,7 +2307,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если произошла ошибка при создании файла.</p>
|
||||
<p>При ошибке создания.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2339,7 +2317,8 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tools\fix_python_project.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">105</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">104</span>
|
||||
<span class="normal">105</span>
|
||||
<span class="normal">106</span>
|
||||
<span class="normal">107</span>
|
||||
<span class="normal">108</span>
|
||||
|
|
@ -2360,17 +2339,18 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="normal">123</span>
|
||||
<span class="normal">124</span>
|
||||
<span class="normal">125</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">create_init_py</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создаёт файл __init__.py в указанной директории.</span>
|
||||
<span class="w"> </span><span class="sd">"""Создаёт файл __init__.py.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> dir_path (str): Путь к директории для создания __init__.py.</span>
|
||||
<span class="sd"> dir_path: Путь к директории.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если файл был успешно создан.</span>
|
||||
<span class="sd"> bool: True если файл создан.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если произошла ошибка при создании файла.</span>
|
||||
<span class="sd"> Exception: При ошибке создания.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">init_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dir_path</span><span class="p">,</span> <span class="s1">'__init__.py'</span><span class="p">)</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">init_path</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
|
|
@ -2397,7 +2377,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Определяет, требуется ли создание <strong>init</strong>.py в директории.</p>
|
||||
<p>Проверяет нужно ли создать <strong>init</strong>.py.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2420,7 +2400,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Путь к проверяемой директории.</p>
|
||||
<p>Путь к директории.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2446,7 +2426,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True, если <strong>init</strong>.py отсутствует, но требуется.</p>
|
||||
<p>True если <strong>init</strong>.py требуется.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2456,7 +2436,9 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tools\fix_python_project.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 85</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 83</span>
|
||||
<span class="normal"> 84</span>
|
||||
<span class="normal"> 85</span>
|
||||
<span class="normal"> 86</span>
|
||||
<span class="normal"> 87</span>
|
||||
<span class="normal"> 88</span>
|
||||
|
|
@ -2473,16 +2455,16 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="normal"> 99</span>
|
||||
<span class="normal">100</span>
|
||||
<span class="normal">101</span>
|
||||
<span class="normal">102</span>
|
||||
<span class="normal">103</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">needs_init_py</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Определяет, требуется ли создание __init__.py в директории.</span>
|
||||
<span class="normal">102</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">needs_init_py</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет нужно ли создать __init__.py.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> dir_path (str): Путь к проверяемой директории.</span>
|
||||
<span class="sd"> dir_path: Путь к директории.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если __init__.py отсутствует, но требуется.</span>
|
||||
<span class="sd"> bool: True если __init__.py требуется.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">should_skip_init</span><span class="p">(</span><span class="n">dir_path</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="kc">False</span>
|
||||
|
||||
|
|
@ -2510,7 +2492,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Рекурсивно обрабатывает проект, применяя все исправления.</p>
|
||||
<p>Рекурсивно обрабатывает проект.</p>
|
||||
|
||||
|
||||
<details class="quote">
|
||||
|
|
@ -2525,8 +2507,10 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="normal">134</span>
|
||||
<span class="normal">135</span>
|
||||
<span class="normal">136</span>
|
||||
<span class="normal">137</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">process_directory</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Рекурсивно обрабатывает проект, применяя все исправления."""</span>
|
||||
<span class="normal">137</span>
|
||||
<span class="normal">138</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">process_directory</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Рекурсивно обрабатывает проект."""</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">dirs</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root_dir</span><span class="p">):</span>
|
||||
<span class="c1"># Обработка файлов с целевыми расширениями</span>
|
||||
<span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">files</span><span class="p">:</span>
|
||||
|
|
@ -2553,8 +2537,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Удаляет BOM-маркер из файла, если он присутствует.</p>
|
||||
<p>Обрабатывает все файлы, включая находящиеся в tests/.</p>
|
||||
<p>Удаляет BOM-маркер из файла.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2577,7 +2560,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Путь к файлу для обработки.</p>
|
||||
<p>Путь к файлу.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2603,7 +2586,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True, если BOM был удалён, False в противном случае.</p>
|
||||
<p>True если BOM был удалён.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2626,7 +2609,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Если произошла ошибка при чтении/записи файла.</p>
|
||||
<p>При ошибке чтения/записи.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2660,21 +2643,19 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">remove_bom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepath</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Удаляет BOM-маркер из файла, если он присутствует.</span>
|
||||
|
||||
<span class="sd"> Обрабатывает все файлы, включая находящиеся в tests/.</span>
|
||||
<span class="normal">67</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">remove_bom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepath</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Удаляет BOM-маркер из файла.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> filepath (str): Путь к файлу для обработки.</span>
|
||||
<span class="sd"> filepath: Путь к файлу.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если BOM был удалён, False в противном случае.</span>
|
||||
<span class="sd"> bool: True если BOM был удалён.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
<span class="sd"> Exception: Если произошла ошибка при чтении/записи файла.</span>
|
||||
<span class="sd"> Exception: При ошибке чтения/записи.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s1">'rb'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
<span class="n">content</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
|
||||
|
|
@ -2704,7 +2685,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Сохраняет лог выполненных операций в файл.</p>
|
||||
<p>Сохраняет лог операций в файл.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2727,7 +2708,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Имя файла для сохранения лога. По умолчанию 'project_fix.log'.</p>
|
||||
<p>Имя файла лога. По умолчанию 'project_fix.log'.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2740,19 +2721,21 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tools\fix_python_project.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">139</span>
|
||||
<span class="normal">140</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">140</span>
|
||||
<span class="normal">141</span>
|
||||
<span class="normal">142</span>
|
||||
<span class="normal">143</span>
|
||||
<span class="normal">144</span>
|
||||
<span class="normal">145</span>
|
||||
<span class="normal">146</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">save_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">log_file</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'project_fix.log'</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Сохраняет лог выполненных операций в файл.</span>
|
||||
<span class="normal">146</span>
|
||||
<span class="normal">147</span>
|
||||
<span class="normal">148</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">save_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">log_file</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'project_fix.log'</span><span class="p">):</span>
|
||||
<span class="w"> </span><span class="sd">"""Сохраняет лог операций в файл.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> log_file (str): Имя файла для сохранения лога. По умолчанию 'project_fix.log'.</span>
|
||||
<span class="sd"> log_file: Имя файла лога. По умолчанию 'project_fix.log'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">log_file</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">'utf-8'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||||
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">))</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
|
|
@ -2772,8 +2755,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Проверяет, нужно ли пропустить создание <strong>init</strong>.py в директории.</p>
|
||||
<p>Игнорирует служебные папки (tests/, .git/ и др.).</p>
|
||||
<p>Проверяет нужно ли пропустить директорию.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -2796,7 +2778,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Путь к проверяемой директории.</p>
|
||||
<p>Путь к директории.</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -2822,7 +2804,7 @@ log (List[str]): Список записей лога выполненных о
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>True, если директорию следует пропустить.</p>
|
||||
<p>True если директорию нужно пропустить.</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
@ -2832,7 +2814,8 @@ log (List[str]): Список записей лога выполненных о
|
|||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tools\fix_python_project.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">70</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">69</span>
|
||||
<span class="normal">70</span>
|
||||
<span class="normal">71</span>
|
||||
<span class="normal">72</span>
|
||||
<span class="normal">73</span>
|
||||
|
|
@ -2843,21 +2826,18 @@ log (List[str]): Список записей лога выполненных о
|
|||
<span class="normal">78</span>
|
||||
<span class="normal">79</span>
|
||||
<span class="normal">80</span>
|
||||
<span class="normal">81</span>
|
||||
<span class="normal">82</span>
|
||||
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_skip_init</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет, нужно ли пропустить создание __init__.py в директории.</span>
|
||||
|
||||
<span class="sd"> Игнорирует служебные папки (tests/, .git/ и др.).</span>
|
||||
<span class="normal">81</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_skip_init</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dir_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Проверяет нужно ли пропустить директорию.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> dir_path (str): Путь к проверяемой директории.</span>
|
||||
<span class="sd"> dir_path: Путь к директории.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> bool: True, если директорию следует пропустить.</span>
|
||||
<span class="sd"> bool: True если директорию нужно пропустить.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">dir_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">dir_path</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">dir_name</span> <span class="ow">in</span> <span class="n">INIT_IGNORED_DIRS</span> <span class="ow">or</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">dir_name</span> <span class="ow">in</span> <span class="n">INIT_IGNORED_DIRS</span> <span class="ow">or</span>
|
||||
<span class="n">dir_name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'.'</span><span class="p">))</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -1702,7 +1702,9 @@
|
|||
<a id="tools.logger"></a>
|
||||
<div class="doc doc-contents first">
|
||||
|
||||
<p>Модуль для настройки и получения логгера.</p>
|
||||
<p>Модуль настройки логгера.</p>
|
||||
<p>Содержит функцию для создания и настройки логгера
|
||||
с выводом в стандартный поток.</p>
|
||||
|
||||
|
||||
|
||||
|
|
@ -1733,11 +1735,7 @@
|
|||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Создаёт и настраивает логгер с заданным именем.</p>
|
||||
<p>Настройки логгера:
|
||||
- Уровень логирования: DEBUG
|
||||
- Формат вывода: время | имя логгера | уровень | сообщение
|
||||
- Вывод: в стандартный поток (stdout)</p>
|
||||
<p>Создаёт и настраивает логгер.</p>
|
||||
|
||||
|
||||
<p><span class="doc-section-title">Parameters:</span></p>
|
||||
|
|
@ -1760,7 +1758,7 @@
|
|||
</td>
|
||||
<td>
|
||||
<div class="doc-md-description">
|
||||
<p>Имя логгера. Обычно используется <strong>name</strong> модуля.</p>
|
||||
<p>Имя логгера (обычно <strong>name</strong> модуля).</p>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
|
|
@ -1794,25 +1792,15 @@
|
|||
</table>
|
||||
|
||||
|
||||
<details class="пример-использования" open>
|
||||
<summary>Пример использования</summary>
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<p>logger = get_logger(<strong>name</strong>)
|
||||
<details class="пример" open>
|
||||
<summary>Пример</summary>
|
||||
<p>logger = get_logger(<strong>name</strong>)
|
||||
logger.debug("Тестовое сообщение")</p>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</details>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>tools\logger.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
|
|
@ -1840,23 +1828,19 @@ logger.debug("Тестовое сообщение")</p>
|
|||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_logger</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">logging</span><span class="o">.</span><span class="n">Logger</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Создаёт и настраивает логгер с заданным именем.</span>
|
||||
|
||||
<span class="sd"> Настройки логгера:</span>
|
||||
<span class="sd"> - Уровень логирования: DEBUG</span>
|
||||
<span class="sd"> - Формат вывода: время | имя логгера | уровень | сообщение</span>
|
||||
<span class="sd"> - Вывод: в стандартный поток (stdout)</span>
|
||||
<span class="w"> </span><span class="sd">"""Создаёт и настраивает логгер.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> name (str): Имя логгера. Обычно используется __name__ модуля.</span>
|
||||
<span class="sd"> name: Имя логгера (обычно __name__ модуля).</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> logging.Logger: Настроенный экземпляр логгера.</span>
|
||||
|
||||
<span class="sd"> Пример использования:</span>
|
||||
<span class="sd"> >>> logger = get_logger(__name__)</span>
|
||||
<span class="sd"> >>> logger.debug("Тестовое сообщение")</span>
|
||||
<span class="sd"> Пример:</span>
|
||||
<span class="sd"> logger = get_logger(__name__)</span>
|
||||
<span class="sd"> logger.debug("Тестовое сообщение")</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль тестов для контейнера с JSON-данными.
|
||||
|
||||
Содержит тесты для проверки функциональности контейнера
|
||||
с JSON-данными на вкладке лицензий.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from playwright.sync_api import Page
|
||||
from pages.main_page import MainPage
|
||||
|
|
@ -10,7 +16,12 @@ class TestJsonContainer:
|
|||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser: Page) -> None:
|
||||
"""Фикстура для настройки тестового окружения."""
|
||||
"""Настраивает тестовое окружение перед каждым тестом.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
|
|
@ -21,7 +32,17 @@ class TestJsonContainer:
|
|||
mp.click_configuration_navigation_panel_item("Лицензии")
|
||||
|
||||
def test_verticall_scrolling(self, browser: Page) -> None:
|
||||
"""Тест проверки вертикальной прокрутки в контейнере с JSON-данными."""
|
||||
"""Проверяет вертикальную прокрутку в контейнере с JSON-данными.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
|
||||
Steps:
|
||||
1. Проверяет наличие вертикальной прокрутки
|
||||
2. Прокручивает контейнер вниз
|
||||
3. Прокручивает контейнер вверх
|
||||
"""
|
||||
|
||||
lt = LicenseTab(browser)
|
||||
|
||||
is_scrollable = lt.check_json_container_verticall_scrolling()
|
||||
|
|
|
|||
|
|
@ -1,3 +1,10 @@
|
|||
"""Модуль тестов панели навигации.
|
||||
|
||||
Содержит тесты для проверки функциональности и прокрутки
|
||||
панели навигации в приложении.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from pages.main_page import MainPage
|
||||
from pages.login_page import LoginPage
|
||||
|
||||
|
|
@ -8,21 +15,19 @@ class TestNavigationPanel:
|
|||
"""Класс тестов для проверки панели навигации.
|
||||
|
||||
Атрибуты:
|
||||
browser: фикстура для работы с браузером
|
||||
browser: Фикстура для работы с браузером.
|
||||
"""
|
||||
|
||||
def test_verticall_scrolling(self, browser):
|
||||
"""Тест вертикальной прокрутки панели навигации.
|
||||
def test_verticall_scrolling(self, browser: Page):
|
||||
"""Проверяет вертикальную прокрутку панели навигации.
|
||||
|
||||
Аргументы:
|
||||
browser: фикстура для работы с браузером
|
||||
Args:
|
||||
browser: Фикстура для работы с браузером.
|
||||
|
||||
Возвращает:
|
||||
None
|
||||
|
||||
Исключения:
|
||||
AssertionError: если панель навигации не поддерживает вертикальную прокрутку
|
||||
Raises:
|
||||
AssertionError: Если панель не поддерживает прокрутку.
|
||||
"""
|
||||
|
||||
# Действия:
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль тестов таблицы статусов сервисов.
|
||||
|
||||
Содержит тесты для проверки функциональности и прокрутки
|
||||
таблицы статусов сервисов на вкладке обслуживания.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from playwright.sync_api import Page
|
||||
from pages.service_status_tab import ServiceStatusTab
|
||||
|
|
@ -5,11 +11,16 @@ from pages.main_page import MainPage
|
|||
from pages.login_page import LoginPage
|
||||
|
||||
class TestServiceStatusTable:
|
||||
"""Тесты для проверки таблицы статусов сервисов."""
|
||||
"""Класс тестов для проверки таблицы статусов сервисов."""
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser: Page) -> None:
|
||||
"""Фикстура для настройки тестового окружения."""
|
||||
"""Настраивает тестовое окружение перед каждым тестом.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
|
|
@ -20,7 +31,18 @@ class TestServiceStatusTable:
|
|||
mp.click_maintenance_navigation_panel_item("Статус обслуживания")
|
||||
|
||||
def test_scrolling(self, browser: Page) -> None:
|
||||
"""Тест проверки прокрутки таблицы статусов сервисов."""
|
||||
"""Проверяет прокрутку таблицы статусов сервисов.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
|
||||
Steps:
|
||||
1. Проверяет наличие и содержимое таблицы
|
||||
2. Проверяет возможность вертикальной прокрутки
|
||||
3. Прокручивает вниз и проверяет видимость последней строки
|
||||
4. Прокручивает вверх и проверяет видимость первой строки
|
||||
"""
|
||||
|
||||
sst = ServiceStatusTab(browser)
|
||||
|
||||
sst.should_be_services_table()
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль тестов модальных окон пользователей.
|
||||
|
||||
Содержит тесты для проверки функциональности и прокрутки
|
||||
модальных окон работы с пользователями.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from playwright.sync_api import Page
|
||||
from pages.users_tab import UsersTab
|
||||
|
|
@ -5,11 +11,16 @@ from pages.main_page import MainPage
|
|||
from pages.login_page import LoginPage
|
||||
|
||||
class TestUsersModalWindow:
|
||||
"""Тесты для проверки модальных окон работы с пользователями."""
|
||||
"""Класс тестов для проверки модальных окон пользователей."""
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser: Page) -> None:
|
||||
"""Фикстура для настройки тестового окружения."""
|
||||
"""Настраивает тестовое окружение перед каждым тестом.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
|
|
@ -20,7 +31,17 @@ class TestUsersModalWindow:
|
|||
|
||||
@pytest.mark.develop
|
||||
def test_edit_user_window_scrolling(self, browser: Page) -> None:
|
||||
"""Тест проверки прокрутки окна редактирования пользователя."""
|
||||
"""Проверяет прокрутку окна редактирования пользователя.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
|
||||
Steps:
|
||||
1. Открывает окно редактирования
|
||||
2. Проверяет вертикальную прокрутку
|
||||
3. Проверяет горизонтальную прокрутку
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
user_name, role = ut.open_edit_user_page_by_index(0)
|
||||
modal_window = ut.get_modal_window(user_name)
|
||||
|
|
@ -45,7 +66,16 @@ class TestUsersModalWindow:
|
|||
ut.wait_for_timeout(2000)
|
||||
|
||||
def test_add_user_window_scrolling(self, browser: Page) -> None:
|
||||
"""Тест проверки прокрутки окна добавления пользователя."""
|
||||
"""Проверяет прокрутку окна добавления пользователя.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
|
||||
Steps:
|
||||
1. Открывает окно добавления
|
||||
2. Проверяет вертикальную прокрутку
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
ut.open_add_user_window()
|
||||
modal_window = ut.get_modal_window("add_user")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль тестов вкладки 'Лицензии'.
|
||||
|
||||
Содержит тесты для проверки функциональности
|
||||
и содержимого вкладки лицензий.
|
||||
"""
|
||||
|
||||
import uuid
|
||||
from typing import List
|
||||
import pytest
|
||||
|
|
@ -7,11 +13,16 @@ from pages.login_page import LoginPage
|
|||
from pages.license_tab import LicenseTab
|
||||
|
||||
class TestLicenseTab:
|
||||
"""Тесты для вкладки 'Лицензии'."""
|
||||
"""Класс тестов для проверки вкладки 'Лицензии'."""
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser: Page) -> None:
|
||||
"""Подготовка тестового окружения."""
|
||||
"""Настраивает тестовое окружение перед каждым тестом.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
|
|
@ -22,14 +33,29 @@ class TestLicenseTab:
|
|||
mp.click_configuration_navigation_panel_item("Лицензии")
|
||||
|
||||
def test_lisence_tab_content(self, browser: Page) -> None:
|
||||
"""Тест содержимого вкладки 'Лицензии'."""
|
||||
"""Проверяет содержимое вкладки 'Лицензии'.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lt = LicenseTab(browser)
|
||||
lt.check_content()
|
||||
|
||||
def test_license_tab_input_form_and_check_alert(self, browser: Page) -> None:
|
||||
"""Тест формы ввода лицензии и проверки алертов."""
|
||||
"""Проверяет форму ввода лицензии и отображение алертов.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
def gen_test_data() -> List[str]:
|
||||
"""Генерация тестовых данных для проверки формы ввода лицензии."""
|
||||
"""Генерирует тестовые данные для проверки формы.
|
||||
|
||||
Returns:
|
||||
List[str]: Список тестовых строк лицензий.
|
||||
"""
|
||||
|
||||
data = []
|
||||
for i in range(3):
|
||||
data.append(uuid.uuid4().hex)
|
||||
|
|
|
|||
|
|
@ -1,22 +1,43 @@
|
|||
"""Модуль тестов авторизации.
|
||||
|
||||
Содержит тесты для проверки функционала
|
||||
входа и выхода из системы.
|
||||
"""
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from pages.main_page import MainPage
|
||||
from pages.login_page import LoginPage
|
||||
|
||||
class TestLogin:
|
||||
"""Тесты для функционала входа и выхода из системы."""
|
||||
"""Класс тестов для проверки авторизации."""
|
||||
|
||||
def test_successful_login(self, browser: Page) -> None:
|
||||
"""Тест успешного входа в систему."""
|
||||
"""Проверяет успешный вход в систему.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
def test_unsuccessful_login(self, browser: Page) -> None:
|
||||
"""Тест неудачного входа в систему."""
|
||||
"""Проверяет вход с неверными учетными данными.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_unsuccessful_login()
|
||||
|
||||
def test_successful_login_and_logout(self, browser: Page) -> None:
|
||||
"""Тест успешного входа и выхода из системы."""
|
||||
"""Проверяет успешный вход и выход из системы.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +1,28 @@
|
|||
"""Модуль тестов вкладки 'Статус обслуживания'.
|
||||
|
||||
Содержит тесты для проверки отображения и функциональности
|
||||
элементов вкладки статусов сервисов.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
|
||||
from playwright.sync_api import Page
|
||||
from pages.service_status_tab import ServiceStatusTab
|
||||
from pages.main_page import MainPage
|
||||
from pages.login_page import LoginPage
|
||||
|
||||
class TestServiceStatusTab:
|
||||
"""Набор тестов для вкладки 'Статус обслуживания'.
|
||||
|
||||
Проверяет корректность отображения и функциональность элементов вкладки.
|
||||
"""
|
||||
class TestServiceStatusTab:
|
||||
"""Класс тестов для проверки вкладки 'Статус обслуживания'."""
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser):
|
||||
"""Фикстура для подготовки тестового окружения.
|
||||
def setup(self, browser: Page):
|
||||
"""Подготавливает тестовое окружение.
|
||||
|
||||
Выполняет:
|
||||
1. Авторизацию в системе
|
||||
2. Переход на вкладку 'Статус обслуживания'
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
|
|
@ -35,14 +41,13 @@ class TestServiceStatusTab:
|
|||
# Клик по пункту 'Статус обслуживания' в панели навигации обслуживания
|
||||
mp.click_maintenance_navigation_panel_item("Статус обслуживания")
|
||||
|
||||
def test_service_status_tab_content(self, browser):
|
||||
"""Тест содержимого вкладки 'Статус обслуживания'.
|
||||
def test_service_status_tab_content(self, browser: Page):
|
||||
"""Проверяет содержимое вкладки 'Статус обслуживания'.
|
||||
|
||||
Проверяет:
|
||||
1. Наличие тулбара
|
||||
2. Наличие таблицы сервисов
|
||||
3. Корректность содержимого таблицы
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
sst = ServiceStatusTab(browser)
|
||||
|
||||
# Проверка тулбара вкладки
|
||||
|
|
@ -54,14 +59,13 @@ class TestServiceStatusTab:
|
|||
# Проверка содержимого таблицы сервисов
|
||||
sst.check_services_table_content()
|
||||
|
||||
def test_service_status_table_row_highlighting(self, browser):
|
||||
"""Тест выделения строк в таблице сервисов.
|
||||
def test_service_status_table_row_highlighting(self, browser: Page):
|
||||
"""Проверяет выделение строк в таблице сервисов.
|
||||
|
||||
Проверяет выделение строк:
|
||||
1. Первой строки
|
||||
2. Последней строки
|
||||
3. Строки в середине таблицы
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
sst = ServiceStatusTab(browser)
|
||||
|
||||
# Проверка тулбара вкладки
|
||||
|
|
|
|||
|
|
@ -1,22 +1,26 @@
|
|||
"""Модуль тестов вкладки 'Сеансы'.
|
||||
|
||||
Содержит тесты для проверки отображения и функциональности
|
||||
элементов вкладки сеансов пользователей.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from pages.session_tab import SessionsTab
|
||||
from pages.main_page import MainPage
|
||||
from pages.login_page import LoginPage
|
||||
|
||||
class TestSessionsTab:
|
||||
"""Набор тестов для вкладки 'Сеансы'.
|
||||
|
||||
Проверяет корректность отображения и функциональность элементов вкладки сеансов.
|
||||
"""
|
||||
class TestSessionsTab:
|
||||
"""Класс тестов для проверки вкладки 'Сеансы'."""
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser):
|
||||
"""Фикстура для подготовки тестового окружения.
|
||||
"""Подготавливает тестовое окружение.
|
||||
|
||||
Выполняет:
|
||||
1. Авторизацию в системе
|
||||
2. Переход на вкладку 'Сеансы' через панель навигации
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
# Авторизация в системе
|
||||
login_page = LoginPage(browser)
|
||||
login_page.do_login()
|
||||
|
|
@ -31,13 +35,12 @@ class TestSessionsTab:
|
|||
main_page.click_maintenance_navigation_panel_item("Сеансы")
|
||||
|
||||
def test_sessions_tab_content(self, browser):
|
||||
"""Тест содержимого вкладки 'Сеансы'.
|
||||
"""Проверяет содержимое вкладки 'Сеансы'.
|
||||
|
||||
Проверяет:
|
||||
1. Наличие и корректность тулбара
|
||||
2. Наличие таблицы сеансов
|
||||
3. Соответствие содержимого таблицы данным из БД
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
# Инициализация страницы сеансов
|
||||
sessions_tab = SessionsTab(browser)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
"""Модуль тестов вкладки 'Пользователи'.
|
||||
|
||||
Содержит тесты для проверки функциональности
|
||||
работы с пользователями системы.
|
||||
"""
|
||||
|
||||
from typing import Dict
|
||||
import pytest
|
||||
from playwright.sync_api import Page
|
||||
|
|
@ -6,11 +12,16 @@ from pages.main_page import MainPage
|
|||
from pages.login_page import LoginPage
|
||||
|
||||
class TestUsersTab:
|
||||
"""Тесты для вкладки 'Пользователи'."""
|
||||
"""Класс тестов для проверки вкладки 'Пользователи'."""
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser: Page) -> None:
|
||||
"""Подготовка тестового окружения."""
|
||||
"""Настраивает тестовое окружение.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
lp = LoginPage(browser)
|
||||
lp.do_login()
|
||||
|
||||
|
|
@ -20,25 +31,45 @@ class TestUsersTab:
|
|||
mp.click_configuration_navigation_panel_item("Пользователи")
|
||||
|
||||
def test_users_tab_content(self, browser: Page) -> None:
|
||||
"""Тест содержимого вкладки 'Пользователи'."""
|
||||
"""Проверяет содержимое вкладки 'Пользователи'.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
ut.should_be_toolbar()
|
||||
ut.should_be_users_table()
|
||||
ut.check_users_table_content(True)
|
||||
|
||||
def test_users_tab_toolbar_buttons(self, browser: Page) -> None:
|
||||
"""Тест кнопок на панели инструментов."""
|
||||
"""Проверяет кнопки на панели инструментов.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
ut.should_be_toolbar_buttons()
|
||||
|
||||
def test_add_user_window_content(self, browser: Page) -> None:
|
||||
"""Тест содержимого окна добавления пользователя."""
|
||||
"""Проверяет содержимое окна добавления пользователя.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
ut.open_add_user_window()
|
||||
ut.check_add_user_window_content()
|
||||
|
||||
def test_add_user_window_close_buttons(self, browser: Page) -> None:
|
||||
"""Тест кнопок закрытия окна добавления пользователя."""
|
||||
"""Проверяет кнопки закрытия окна добавления.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
ut.open_add_user_window()
|
||||
ut.close_add_user_window_by_toolbar_button()
|
||||
|
|
@ -47,13 +78,23 @@ class TestUsersTab:
|
|||
ut.close_add_user_window()
|
||||
|
||||
def test_edit_user_window_content(self, browser: Page) -> None:
|
||||
"""Тест содержимого окна редактирования пользователя."""
|
||||
"""Проверяет содержимое окна редактирования.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
user_name, role = ut.open_edit_user_page_by_index(0)
|
||||
ut.check_edit_user_window_content(user_name, role)
|
||||
|
||||
def test_edit_user_window_close_buttons(self, browser: Page) -> None:
|
||||
"""Тест кнопок закрытия окна редактирования пользователя."""
|
||||
"""Проверяет кнопки закрытия окна редактирования.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
ut = UsersTab(browser)
|
||||
user_name, role = ut.open_edit_user_page_by_index(0)
|
||||
ut.close_edit_user_window_by_toolbar_button(user_name)
|
||||
|
|
@ -61,7 +102,12 @@ class TestUsersTab:
|
|||
ut.close_edit_user_window(user_name)
|
||||
|
||||
def test_add_and_delete_user(self, browser: Page) -> None:
|
||||
"""Тест добавления и удаления пользователя."""
|
||||
"""Проверяет добавление и удаление пользователя.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
user_data: Dict[str, str] = {"name": "User", "role": "Администратор", "password": "987654"}
|
||||
|
||||
mp = MainPage(browser)
|
||||
|
|
@ -79,7 +125,12 @@ class TestUsersTab:
|
|||
ut.should_not_be_user_in_table(user_data["name"], user_data["role"])
|
||||
|
||||
def test_reset_password(self, browser: Page) -> None:
|
||||
"""Тест сброса пароля пользователя."""
|
||||
"""Проверяет сброс пароля пользователя.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
user_data: Dict[str, str] = {"name": "autoadmin", "role": "Администратор", "password": "123456"}
|
||||
|
||||
mp = MainPage(browser)
|
||||
|
|
@ -113,7 +164,12 @@ class TestUsersTab:
|
|||
ut_1.should_not_be_user_in_table(user_data["name"], user_data["role"])
|
||||
|
||||
def test_edit_user_role(self, browser: Page) -> None:
|
||||
"""Тест изменения роли пользователя."""
|
||||
"""Проверяет изменение роли пользователя.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
"""
|
||||
|
||||
user_data: Dict[str, str] = {"name": "autooperator", "role": "Оператор", "password": "123245"}
|
||||
|
||||
mp = MainPage(browser)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
Python Project Fixer (fix_python_project.py)
|
||||
--------------------------------------------
|
||||
Автоматически исправляет структуру Python-проекта:
|
||||
1. Удаляет BOM-маркеры из текстовых файлов (.py, .json, .txt)
|
||||
2. Создаёт недостающие __init__.py файлы (игнорируя служебные папки)
|
||||
3. Сохраняет подробный лог всех выполненных операций
|
||||
"""Модуль исправления структуры Python-проекта.
|
||||
|
||||
Автоматически выполняет:
|
||||
1. Удаление BOM-маркеров из файлов
|
||||
2. Создание недостающих __init__.py
|
||||
3. Логирование всех операций
|
||||
|
||||
Использование: python fix_python_project.py [путь_к_проекту]
|
||||
"""
|
||||
|
|
@ -24,36 +23,36 @@ INIT_TEMPLATE: str = """# Auto-generated by fix_python_project.py
|
|||
|
||||
|
||||
class ProjectFixer:
|
||||
"""Основной класс для исправления структуры Python-проекта.
|
||||
"""Исправляет структуру Python-проекта.
|
||||
|
||||
Атрибуты:
|
||||
root_dir (str): Корневая директория проекта.
|
||||
log (List[str]): Список записей лога выполненных операций.
|
||||
root_dir: Корневая директория проекта.
|
||||
log: Лог выполненных операций.
|
||||
"""
|
||||
|
||||
def __init__(self, root_dir: str = '.'):
|
||||
"""Инициализирует экземпляр ProjectFixer.
|
||||
|
||||
Args:
|
||||
root_dir (str): Корневая директория проекта. По умолчанию текущая директория ('.').
|
||||
root_dir: Корневая директория проекта. По умолчанию '.'.
|
||||
"""
|
||||
|
||||
self.root_dir = os.path.abspath(root_dir)
|
||||
self.log: List[str] = []
|
||||
|
||||
def remove_bom(self, filepath: str) -> bool:
|
||||
"""Удаляет BOM-маркер из файла, если он присутствует.
|
||||
|
||||
Обрабатывает все файлы, включая находящиеся в tests/.
|
||||
"""Удаляет BOM-маркер из файла.
|
||||
|
||||
Args:
|
||||
filepath (str): Путь к файлу для обработки.
|
||||
filepath: Путь к файлу.
|
||||
|
||||
Returns:
|
||||
bool: True, если BOM был удалён, False в противном случае.
|
||||
bool: True если BOM был удалён.
|
||||
|
||||
Raises:
|
||||
Exception: Если произошла ошибка при чтении/записи файла.
|
||||
Exception: При ошибке чтения/записи.
|
||||
"""
|
||||
|
||||
try:
|
||||
with open(filepath, 'rb') as f:
|
||||
content = f.read()
|
||||
|
|
@ -68,29 +67,29 @@ class ProjectFixer:
|
|||
return False
|
||||
|
||||
def should_skip_init(self, dir_path: str) -> bool:
|
||||
"""Проверяет, нужно ли пропустить создание __init__.py в директории.
|
||||
|
||||
Игнорирует служебные папки (tests/, .git/ и др.).
|
||||
"""Проверяет нужно ли пропустить директорию.
|
||||
|
||||
Args:
|
||||
dir_path (str): Путь к проверяемой директории.
|
||||
dir_path: Путь к директории.
|
||||
|
||||
Returns:
|
||||
bool: True, если директорию следует пропустить.
|
||||
bool: True если директорию нужно пропустить.
|
||||
"""
|
||||
|
||||
dir_name = os.path.basename(dir_path)
|
||||
return (dir_name in INIT_IGNORED_DIRS or
|
||||
dir_name.startswith('.'))
|
||||
|
||||
def needs_init_py(self, dir_path: str) -> bool:
|
||||
"""Определяет, требуется ли создание __init__.py в директории.
|
||||
"""Проверяет нужно ли создать __init__.py.
|
||||
|
||||
Args:
|
||||
dir_path (str): Путь к проверяемой директории.
|
||||
dir_path: Путь к директории.
|
||||
|
||||
Returns:
|
||||
bool: True, если __init__.py отсутствует, но требуется.
|
||||
bool: True если __init__.py требуется.
|
||||
"""
|
||||
|
||||
if self.should_skip_init(dir_path):
|
||||
return False
|
||||
|
||||
|
|
@ -103,17 +102,18 @@ class ProjectFixer:
|
|||
return False
|
||||
|
||||
def create_init_py(self, dir_path: str) -> bool:
|
||||
"""Создаёт файл __init__.py в указанной директории.
|
||||
"""Создаёт файл __init__.py.
|
||||
|
||||
Args:
|
||||
dir_path (str): Путь к директории для создания __init__.py.
|
||||
dir_path: Путь к директории.
|
||||
|
||||
Returns:
|
||||
bool: True, если файл был успешно создан.
|
||||
bool: True если файл создан.
|
||||
|
||||
Raises:
|
||||
Exception: Если произошла ошибка при создании файла.
|
||||
Exception: При ошибке создания.
|
||||
"""
|
||||
|
||||
init_path = os.path.join(dir_path, '__init__.py')
|
||||
try:
|
||||
with open(init_path, 'w', encoding='utf-8') as f:
|
||||
|
|
@ -125,7 +125,8 @@ class ProjectFixer:
|
|||
return False
|
||||
|
||||
def process_directory(self):
|
||||
"""Рекурсивно обрабатывает проект, применяя все исправления."""
|
||||
"""Рекурсивно обрабатывает проект."""
|
||||
|
||||
for root, dirs, files in os.walk(self.root_dir):
|
||||
# Обработка файлов с целевыми расширениями
|
||||
for file in files:
|
||||
|
|
@ -137,11 +138,12 @@ class ProjectFixer:
|
|||
self.create_init_py(root)
|
||||
|
||||
def save_log(self, log_file: str = 'project_fix.log'):
|
||||
"""Сохраняет лог выполненных операций в файл.
|
||||
"""Сохраняет лог операций в файл.
|
||||
|
||||
Args:
|
||||
log_file (str): Имя файла для сохранения лога. По умолчанию 'project_fix.log'.
|
||||
log_file: Имя файла лога. По умолчанию 'project_fix.log'.
|
||||
"""
|
||||
|
||||
with open(log_file, 'w', encoding='utf-8') as f:
|
||||
f.write("\n".join(self.log))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,26 @@
|
|||
"""Модуль для настройки и получения логгера."""
|
||||
"""Модуль настройки логгера.
|
||||
|
||||
Содержит функцию для создания и настройки логгера
|
||||
с выводом в стандартный поток.
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
|
||||
def get_logger(name: str) -> logging.Logger:
|
||||
"""Создаёт и настраивает логгер с заданным именем.
|
||||
|
||||
Настройки логгера:
|
||||
- Уровень логирования: DEBUG
|
||||
- Формат вывода: время | имя логгера | уровень | сообщение
|
||||
- Вывод: в стандартный поток (stdout)
|
||||
"""Создаёт и настраивает логгер.
|
||||
|
||||
Args:
|
||||
name (str): Имя логгера. Обычно используется __name__ модуля.
|
||||
name: Имя логгера (обычно __name__ модуля).
|
||||
|
||||
Returns:
|
||||
logging.Logger: Настроенный экземпляр логгера.
|
||||
|
||||
Пример использования:
|
||||
>>> logger = get_logger(__name__)
|
||||
>>> logger.debug("Тестовое сообщение")
|
||||
Пример:
|
||||
logger = get_logger(__name__)
|
||||
logger.debug("Тестовое сообщение")
|
||||
"""
|
||||
|
||||
logger = logging.getLogger(name)
|
||||
logger.setLevel(logging.DEBUG)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue