Добавлен тест редактирования Стойки
parent
b5c1ee5d23
commit
c38cf601cb
|
|
@ -48,103 +48,27 @@ class RackPage(BasePage):
|
||||||
show_button_locator = self.page.locator(RackLocators.SHOW_RACK_BUTTON)
|
show_button_locator = self.page.locator(RackLocators.SHOW_RACK_BUTTON)
|
||||||
self.show_button = TooltipButton(page, show_button_locator, "show_rack")
|
self.show_button = TooltipButton(page, show_button_locator, "show_rack")
|
||||||
|
|
||||||
# Кнопка "Переместить"
|
|
||||||
replace_button_locator = self.page.locator(RackLocators.TOOLBAR_REPLACE_BUTTON)
|
|
||||||
self.replace_button = TooltipButton(page, replace_button_locator, "replace")
|
|
||||||
|
|
||||||
# Кнопка "Сохранить"
|
|
||||||
done_button_locator = self.page.locator(RackLocators.TOOLBAR_DONE_BUTTON)
|
|
||||||
self.done_button = TooltipButton(page, done_button_locator, "done")
|
|
||||||
|
|
||||||
# Кнопка "Отменить"
|
|
||||||
close_button_locator = self.page.locator(RackLocators.TOOLBAR_CLOSE_BUTTON)
|
|
||||||
self.close_button = TooltipButton(page, close_button_locator, "close")
|
|
||||||
|
|
||||||
# Кнопка "Удалить"
|
|
||||||
remove_button_locator = self.page.locator(RackLocators.TOOLBAR_REMOVE_BUTTON)
|
|
||||||
self.remove_button = TooltipButton(page, remove_button_locator, "remove")
|
|
||||||
|
|
||||||
self.toolbar = ToolbarComponent(page, "")
|
self.toolbar = ToolbarComponent(page, "")
|
||||||
self.toolbar.add_tooltip_button(locator_button, "edit")
|
self.toolbar.add_tooltip_button(locator_button, "edit")
|
||||||
self.toolbar.add_tooltip_button(hide_button_locator, "hide_rack")
|
self.toolbar.add_tooltip_button(hide_button_locator, "hide_rack")
|
||||||
self.toolbar.add_tooltip_button(show_button_locator, "show_rack")
|
self.toolbar.add_tooltip_button(show_button_locator, "show_rack")
|
||||||
self.toolbar.add_tooltip_button(replace_button_locator, "replace")
|
|
||||||
self.toolbar.add_tooltip_button(done_button_locator, "done")
|
|
||||||
self.toolbar.add_tooltip_button(close_button_locator, "close")
|
|
||||||
self.toolbar.add_tooltip_button(remove_button_locator, "remove")
|
|
||||||
|
|
||||||
# Действия
|
# Действия
|
||||||
|
|
||||||
def click_remove_button(self) -> None:
|
def click_edit_button(self) -> None:
|
||||||
"""
|
"""
|
||||||
Кликает на кнопку 'Удалить' и обрабатывает диалог подтверждения.
|
Кликает на кнопку 'Изменить'.
|
||||||
"""
|
"""
|
||||||
logger.debug("Clicking on 'Remove' button...")
|
logger.debug("Clicking on 'Edit' button...")
|
||||||
|
|
||||||
# Проверяем видимость кнопки
|
# Проверяем видимость кнопки
|
||||||
self.toolbar.check_button_visibility("remove")
|
self.toolbar.check_button_visibility("edit")
|
||||||
|
self.toolbar.check_button_tooltip("edit", "Изменить")
|
||||||
# Проверяем тултип кнопки (может быть "Удалить" или "Remove")
|
|
||||||
try:
|
|
||||||
self.toolbar.check_button_tooltip("remove", "Удалить")
|
|
||||||
except AssertionError:
|
|
||||||
try:
|
|
||||||
self.toolbar.check_button_tooltip("remove", "Remove")
|
|
||||||
except AssertionError:
|
|
||||||
logger.debug("Could not verify tooltip text for remove button")
|
|
||||||
|
|
||||||
# Кликаем на кнопку удаления
|
|
||||||
self.toolbar.get_button_by_name("remove").click()
|
|
||||||
self.wait_for_timeout(1000)
|
|
||||||
|
|
||||||
# Ожидаем появления диалога подтверждения
|
|
||||||
self._handle_remove_confirmation_dialog()
|
|
||||||
|
|
||||||
def confirm_remove_dialog(self, confirm: bool = True) -> None:
|
|
||||||
"""
|
|
||||||
Подтверждает или отклоняет удаление в диалоговом окне.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
confirm (bool): Если True - подтвердить удаление, если False - отменить
|
|
||||||
"""
|
|
||||||
logger.debug(f"Confirming remove dialog with: {'Да' if confirm else 'Нет'}")
|
|
||||||
|
|
||||||
# Ждем немного перед поиском диалога
|
|
||||||
self.wait_for_timeout(1500)
|
|
||||||
|
|
||||||
# Ищем активный диалог
|
|
||||||
dialog = self.page.locator("div.v-dialog--active")
|
|
||||||
|
|
||||||
# Проверяем, что диалог найден и содержит нужный текст
|
|
||||||
assert dialog.count() > 0, "No active dialog found"
|
|
||||||
|
|
||||||
# Проверяем текст диалога
|
|
||||||
dialog_text = dialog.first.text_content()
|
|
||||||
logger.debug("Dialog text: %s", dialog_text)
|
|
||||||
|
|
||||||
# Должен содержать "Запрос подтверждения" и "Удалить"
|
|
||||||
assert "Запрос подтверждения" in dialog_text, "Not a confirmation dialog"
|
|
||||||
|
|
||||||
# Ищем кнопку по data-testid
|
|
||||||
if confirm:
|
|
||||||
button = self.page.locator(RackLocators.CONFIRM_REMOVE_YES_BUTTON)
|
|
||||||
else:
|
|
||||||
button = self.page.locator(RackLocators.CONFIRM_REMOVE_NO_BUTTON)
|
|
||||||
|
|
||||||
# Проверяем, что кнопка найдена
|
|
||||||
assert button.count() > 0, "Button not found with selector"
|
|
||||||
|
|
||||||
# Кликаем на кнопку
|
# Кликаем на кнопку
|
||||||
button_text = button.first.text_content()
|
self.toolbar.get_button_by_name("edit").click()
|
||||||
logger.debug("Clicking button with text: %s", button_text)
|
|
||||||
button.first.click()
|
|
||||||
self.wait_for_timeout(2000)
|
|
||||||
|
|
||||||
# Проверяем, что диалог закрылся
|
|
||||||
self.wait_for_timeout(1000)
|
self.wait_for_timeout(1000)
|
||||||
|
|
||||||
logger.debug("Remove confirmation completed")
|
|
||||||
|
|
||||||
def get_available_tabs(self) -> list[str]:
|
def get_available_tabs(self) -> list[str]:
|
||||||
"""
|
"""
|
||||||
Возвращает список доступных вкладок.
|
Возвращает список доступных вкладок.
|
||||||
|
|
@ -536,18 +460,6 @@ class RackPage(BasePage):
|
||||||
# Кликаем на кнопку "Изменить" для проверки функциональности
|
# Кликаем на кнопку "Изменить" для проверки функциональности
|
||||||
self.toolbar.get_button_by_name("edit").click()
|
self.toolbar.get_button_by_name("edit").click()
|
||||||
|
|
||||||
# Проверяем новые кнопки тулбара
|
|
||||||
self.toolbar.check_button_visibility("replace")
|
|
||||||
self.toolbar.check_button_tooltip("replace", "Переместить")
|
|
||||||
|
|
||||||
self.toolbar.check_button_visibility("done")
|
|
||||||
self.toolbar.check_button_tooltip("done", "Сохранить")
|
|
||||||
|
|
||||||
self.toolbar.check_button_visibility("close")
|
|
||||||
self.toolbar.check_button_tooltip("close", "Отменить")
|
|
||||||
|
|
||||||
self.toolbar.check_button_visibility("remove")
|
|
||||||
self.toolbar.check_button_tooltip("remove", "Удалить")
|
|
||||||
|
|
||||||
def should_have_hide_rack_button(self) -> None:
|
def should_have_hide_rack_button(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
|
@ -690,11 +602,6 @@ class RackPage(BasePage):
|
||||||
|
|
||||||
logger.debug("%s check completed successfully", side_name)
|
logger.debug("%s check completed successfully", side_name)
|
||||||
|
|
||||||
def _handle_remove_confirmation_dialog(self) -> None:
|
|
||||||
"""Обрабатывает диалог подтверждения удаления."""
|
|
||||||
logger.debug("Handling remove confirmation dialog...")
|
|
||||||
self.confirm_remove_dialog(confirm=True)
|
|
||||||
|
|
||||||
def _wait_for_tab_activation(self, tab_name: str, timeout: int = 5000) -> None:
|
def _wait_for_tab_activation(self, tab_name: str, timeout: int = 5000) -> None:
|
||||||
"""
|
"""
|
||||||
Ожидает активации вкладки.
|
Ожидает активации вкладки.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue