Минимальный рефакторинг компонента таблица - сделаны общие методы проверки контента и подсчета колт=ичества строк

pull/1/head
nsubbot 2025-09-23 10:35:45 +03:00
parent 16c558a3a5
commit 1b92588168
4 changed files with 49 additions and 55 deletions

View File

@ -41,6 +41,25 @@ class TableComponent(BaseComponent):
else: else:
return None return None
def get_rows_count(self, locator: str | Locator) -> int:
"""Возвращает количество строк в таблице (без заголовка).
Returns:
int: Количество строк с данными.
Raises:
AssertionError: Если таблица пуста.
"""
table_content = self.read(locator)
rows_count = len(table_content)
if rows_count == 0:
assert False, "The contents of the table are missing"
return rows_count - 1
def read(self, locator: str | Locator) -> list[list[str]]: def read(self, locator: str | Locator) -> list[list[str]]:
"""Читает данные таблицы, включая заголовки. """Читает данные таблицы, включая заголовки.
@ -74,6 +93,30 @@ class TableComponent(BaseComponent):
return table_data return table_data
# Проверки: # Проверки:
def check_content(self,
locator: str | Locator,
expected_headers: list[str]) -> None:
"""Проверяет содержимое таблицы.
Проверяет заголовки и наличие данных в таблице.
Raises:
AssertionError: Если таблица пуста или заголовки неверны.
"""
table_content = self.read(locator)
if len(table_content) == 0:
assert False, "The contents of the table are missing"
actual_headers = table_content[0]
assert actual_headers == expected_headers, \
f"Expected events table headers {expected_headers} are not equal {actual_headers}"
if len(table_content) == 1:
assert False, "Table body is missing"
def check_first_row_visibility(self, locator: str | Locator) -> None: def check_first_row_visibility(self, locator: str | Locator) -> None:
"""Проверяет видимость первой строки таблицы. """Проверяет видимость первой строки таблицы.

View File

@ -39,13 +39,7 @@ class ServiceStatusTab(BasePage):
AssertionError: Если таблица пуста. AssertionError: Если таблица пуста.
""" """
table_content = self.services_table.read(TableLocators.TABLE_WORK_AREA) return self.services_table.get_rows_count(TableLocators.TABLE_WORK_AREA)
rows_count = len(table_content)
if rows_count == 0:
assert False, "The contents of the table are missing"
return rows_count - 1
def scroll_services_table_up(self) -> None: def scroll_services_table_up(self) -> None:
"""Прокручивает таблицу сервисов вверх.""" """Прокручивает таблицу сервисов вверх."""
@ -62,9 +56,6 @@ class ServiceStatusTab(BasePage):
Проверяет заголовки и наличие данных в таблице. Проверяет заголовки и наличие данных в таблице.
Raises: Raises:
AssertionError: Если таблица пуста или заголовки неверны. AssertionError: Если таблица пуста или заголовки неверны.
""" """
@ -78,21 +69,7 @@ class ServiceStatusTab(BasePage):
'Image ТЭГ' 'Image ТЭГ'
] ]
table_content = self.services_table.read(TableLocators.TABLE_WORK_AREA) self.services_table.check_content(TableLocators.TABLE_WORK_AREA, expected_headers)
if len(table_content) == 0:
assert False, "The contents of the table are missing"
actual_headers = table_content[0]
self.check_equals(
actual_headers,
expected_headers,
f"Expected table headers {expected_headers} are not equal {actual_headers}"
)
if len(table_content) == 1:
assert False, "Table body is missing"
def check_services_table_verticall_scrolling(self) -> bool: def check_services_table_verticall_scrolling(self) -> bool:
"""Проверяет возможность вертикальной прокрутки таблицы. """Проверяет возможность вертикальной прокрутки таблицы.
@ -158,4 +135,3 @@ class ServiceStatusTab(BasePage):
TableLocators.TABLE_WORK_AREA, TableLocators.TABLE_WORK_AREA,
"Service statuses table is missing" "Service statuses table is missing"
) )

View File

@ -46,13 +46,7 @@ class SessionsTab(BasePage):
AssertionError: Если таблица пуста. AssertionError: Если таблица пуста.
""" """
table_content = self.sessions_table.read(TableLocators.TABLE_WORK_AREA) return self.sessions_table.get_rows_count(TableLocators.TABLE_WORK_AREA)
rows_count = len(table_content)
if rows_count == 0:
assert False, "The contents of the table are missing"
return rows_count - 1
def get_delete_session_button_from_row(self, row_index: int) -> TooltipButton: def get_delete_session_button_from_row(self, row_index: int) -> TooltipButton:
"""Возвращает кнопку удаления сеанса для указанной строки. """Возвращает кнопку удаления сеанса для указанной строки.
@ -229,6 +223,7 @@ class SessionsTab(BasePage):
'Адрес' 'Адрес'
] ]
table_content = self.sessions_table.read(TableLocators.TABLE_WORK_AREA) table_content = self.sessions_table.read(TableLocators.TABLE_WORK_AREA)
len_table_content = len(table_content) len_table_content = len(table_content)

View File

@ -132,13 +132,7 @@ class TemplatesTab(BasePage):
AssertionError: Если таблица пуста. AssertionError: Если таблица пуста.
""" """
table_content = self.templates_table.read(TableLocators.TABLE_WORK_AREA) return self.templates_table.get_rows_count(TableLocators.TABLE_WORK_AREA)
rows_count = len(table_content)
if rows_count == 0:
assert False, "The contents of the table are missing"
return rows_count - 1
def scroll_templates_table_up(self) -> None: def scroll_templates_table_up(self) -> None:
"""Прокручивает таблицу шаблонов вверх.""" """Прокручивает таблицу шаблонов вверх."""
@ -249,21 +243,7 @@ class TemplatesTab(BasePage):
'Производитель' 'Производитель'
] ]
table_content = self.templates_table.read(TableLocators.TABLE_WORK_AREA) self.templates_table.check_content(TableLocators.TABLE_WORK_AREA, expected_headers)
if len(table_content) == 0:
assert False, "The contents of the table are missing"
actual_headers = table_content[0]
self.check_equals(
actual_headers,
expected_headers,
f"Expected table headers {expected_headers} are not equal {actual_headers}"
)
if len(table_content) == 1:
assert False, "Table body is missing"
def check_templates_table_verticall_scrolling(self) -> bool: def check_templates_table_verticall_scrolling(self) -> bool:
"""Проверяет возможность вертикальной прокрутки таблицы. """Проверяет возможность вертикальной прокрутки таблицы.