Актуализация тестов после перехода на версию 1.27.0

ra3/edit_element_rack
nsubbot 2026-01-16 14:27:37 +03:00
parent 2ae53e3e2e
commit bd9768dc4e
10 changed files with 35 additions and 15 deletions

View File

@ -342,15 +342,18 @@ class TableComponent(BaseComponent):
scale_x, scale_y: коээфициенты масштабирования (причина: несовпадение масштабов контента страницы и фрейма) scale_x, scale_y: коээфициенты масштабирования (причина: несовпадение масштабов контента страницы и фрейма)
""" """
print("row_index: "+str(row_index))
table = self.get_locator(locator) table = self.get_locator(locator)
row = table.locator("tbody").locator(".MuiTableRow-root").nth(row_index) row = table.locator("tbody").locator(".MuiTableRow-root").nth(row_index)
# print(row)
# Прокручиваем и ждем # Прокручиваем и ждем
row.scroll_into_view_if_needed() # row.scroll_into_view_if_needed()
self.page.wait_for_timeout(1000) # self.page.wait_for_timeout(5000)
# Получение "ограничительной рамки" строки # Получение "ограничительной рамки" строки
bounding_box = row.evaluate("el => el.getBoundingClientRect()") bounding_box = row.evaluate("el => el.getBoundingClientRect()")
print(bounding_box)
assert bounding_box, "Requested row is not visible" assert bounding_box, "Requested row is not visible"
# Получение текущего цвета фона # Получение текущего цвета фона
@ -365,8 +368,15 @@ class TableComponent(BaseComponent):
center_x = (bounding_box["x"] + bounding_box["width"] / 2) * scale_x + offset_x center_x = (bounding_box["x"] + bounding_box["width"] / 2) * scale_x + offset_x
center_y = (bounding_box["y"] + bounding_box["height"] / 2) * scale_y + offset_y center_y = (bounding_box["y"] + bounding_box["height"] / 2) * scale_y + offset_y
# Прокручиваем и ждем
row.scroll_into_view_if_needed()
self.page.wait_for_timeout(3000)
self.page.mouse.move(math.ceil(center_x), math.ceil(center_y), steps=5) self.page.mouse.move(math.ceil(center_x), math.ceil(center_y), steps=5)
self.page.wait_for_timeout(1000) self.page.wait_for_timeout(3000)
# print(math.ceil(center_y))
# print(offset_y)
# print(scale_y)
# Получение текущего цвета фона # Получение текущего цвета фона
new_color = row.evaluate("el => window.getComputedStyle(el).backgroundColor") new_color = row.evaluate("el => window.getComputedStyle(el).backgroundColor")

View File

@ -153,7 +153,7 @@ class DateInput(BaseComponent):
expect(label_locator).to_be_visible() expect(label_locator).to_be_visible()
self.time_input_field.check_visibility("Text field for time input is missing") self.time_input_field.check_visibility("Text field for time input is missing")
current_time_value = self.get_time_field_value() current_time_value = self.get_time_field_value()
assert current_time_value == "00:00", \ assert current_time_value == "", \
"Should be empty time input field" "Should be empty time input field"
def check_switch_mode_button_visibility(self) -> None: def check_switch_mode_button_visibility(self) -> None:

View File

@ -30,7 +30,7 @@ class EventsFilterPanel(BaseComponent):
locator("div.menuable__content__active div.scrollarea__body > div:nth-child(1) > div:nth-child(1)") locator("div.menuable__content__active div.scrollarea__body > div:nth-child(1) > div:nth-child(1)")
self.start_time_filter = DateInput(page, loc) self.start_time_filter = DateInput(page, loc)
loc = self.page. \ loc = self.page. \
locator("div.menuable__content__active div.scrollarea__body > div:nth-child(1) > div:nth-child(3)") locator("div.menuable__content__active div.scrollarea__body > div:nth-child(1) > div:nth-child(2)")
self.finish_time_filter = DateInput(page, loc) self.finish_time_filter = DateInput(page, loc)
# Поля задания параметров фильтрации (произвольное количество) # Поля задания параметров фильтрации (произвольное количество)

View File

@ -38,7 +38,7 @@ class ChangePasswordModalWindow(ModalWindowComponent):
self.add_toolbar_title(f"Изменить пароль для пользователя {user_name}?") self.add_toolbar_title(f"Изменить пароль для пользователя {user_name}?")
# Поля ввода пароля # Поля ввода пароля
loc = modal_window_locator.get_by_label("Введите текущий пароль *") loc = page.locator(ModalWindowLocators.CHANDE_PASSWORD_WINDOW_CURRENT_PASSWORD)
old_password_input = TextInput(page, loc, "old_password_input") old_password_input = TextInput(page, loc, "old_password_input")
self.add_content_item("old_password_input", old_password_input) self.add_content_item("old_password_input", old_password_input)
@ -47,7 +47,7 @@ class ChangePasswordModalWindow(ModalWindowComponent):
"old password hidden icon") "old password hidden icon")
self.add_content_item("old_password_hidden_icon", old_password_hidden_icon) self.add_content_item("old_password_hidden_icon", old_password_hidden_icon)
loc = modal_window_locator.get_by_label("Введите новый пароль *") loc = loc = page.locator(ModalWindowLocators.CHANDE_PASSWORD_WINDOW_NEW_PASSWORD)
new_password_input = TextInput(page, loc, "new_password_input") new_password_input = TextInput(page, loc, "new_password_input")
self.add_content_item("new_password_input", new_password_input) self.add_content_item("new_password_input", new_password_input)
@ -56,7 +56,7 @@ class ChangePasswordModalWindow(ModalWindowComponent):
"new password hidden icon") "new password hidden icon")
self.add_content_item("new_password_hidden_icon", new_password_hidden_icon) self.add_content_item("new_password_hidden_icon", new_password_hidden_icon)
loc = modal_window_locator.get_by_label("Введите повторно новый пароль *") loc = loc = page.locator(ModalWindowLocators.CHANDE_PASSWORD_WINDOW_CHECK_PASSWORD)
confirm_password_input = TextInput(page, loc, "confirm_password_input") confirm_password_input = TextInput(page, loc, "confirm_password_input")
self.add_content_item("confirm_password_input", confirm_password_input) self.add_content_item("confirm_password_input", confirm_password_input)

View File

@ -31,3 +31,7 @@ class ModalWindowLocators:
LABEL_INPUT_FORM_USER_DATA = "//label[contains(@class,'v-label')]/span" LABEL_INPUT_FORM_USER_DATA = "//label[contains(@class,'v-label')]/span"
TASK_MODAL_WINDOW = "//div[@data-testid='BASELINE__dialog-drag__modal_0']" TASK_MODAL_WINDOW = "//div[@data-testid='BASELINE__dialog-drag__modal_0']"
CHANDE_PASSWORD_WINDOW_CURRENT_PASSWORD = "//input[@data-testid='CHANGE_PASS_CARD__text-field__current_password']"
CHANDE_PASSWORD_WINDOW_NEW_PASSWORD = "//input[@data-testid='CHANGE_PASS_CARD__text-field__new_password']"
CHANDE_PASSWORD_WINDOW_CHECK_PASSWORD = "//input[@data-testid='CHANGE_PASS_CARD__text-field__check_password']"

View File

@ -298,7 +298,7 @@ class UsersTab(BasePage):
if user_name == val: if user_name == val:
user_name = key user_name = key
role = table_content[row_index][2] role = table_content[row_index][3]
self.page.locator(TableLocators.TABLE_WORK_AREA).locator( self.page.locator(TableLocators.TABLE_WORK_AREA).locator(
"//tbody/tr").nth(row_index).click() "//tbody/tr").nth(row_index).click()
@ -374,8 +374,9 @@ class UsersTab(BasePage):
""" """
self.page.wait_for_timeout(2000) self.page.wait_for_timeout(2000)
expected_headers = ['Имя пользователя', 'Тип авторизации', 'Роль', expected_headers = ['Имя пользователя', 'Идентификатор', 'Тип авторизации',
'E-mail', 'Номер для СМС'] 'Роль', 'E-mail', 'Номер для СМС']
table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA) table_content = self.users_table.read(TableLocators.TABLE_WORK_AREA)
if len(table_content) == 0: if len(table_content) == 0:
@ -492,6 +493,11 @@ class UsersTab(BasePage):
# НЕ преобразуем имя пользователя - оставляем как есть из БД # НЕ преобразуем имя пользователя - оставляем как есть из БД
user_info.append(user_name) user_info.append(user_name)
if item["id"] is not None:
user_info.append(str(item["id"]))
else:
user_info.append("")
if item["type_auth"] is not None: if item["type_auth"] is not None:
user_info.append(item["type_auth"]) user_info.append(item["type_auth"])
else: else:

View File

@ -50,7 +50,7 @@ class TestServiceStatusTab:
# Клик по пункту 'Статус обслуживания' в панели навигации обслуживания # Клик по пункту 'Статус обслуживания' в панели навигации обслуживания
mp.click_subpanel_item("Статус обслуживания") mp.click_subpanel_item("Статус обслуживания")
@pytest.mark.develop # @pytest.mark.develop
def test_service_status_tab_content(self, browser: Page): def test_service_status_tab_content(self, browser: Page):
"""Проверяет содержимое вкладки 'Статус обслуживания'. """Проверяет содержимое вкладки 'Статус обслуживания'.
@ -96,8 +96,8 @@ class TestServiceStatusTab:
# Проверка выделения строк # Проверка выделения строк
sst.check_services_table_row_highlighting(0) sst.check_services_table_row_highlighting(0)
sst.check_services_table_row_highlighting(rows_count - 1)
sst.check_services_table_row_highlighting(int(rows_count / 2)) sst.check_services_table_row_highlighting(int(rows_count / 2))
sst.check_services_table_row_highlighting(rows_count - 1)
# @pytest.mark.develop # @pytest.mark.develop
def test_service_status_tab_resize(self, browser: Page): def test_service_status_tab_resize(self, browser: Page):