Добавление в локаторы data-testid для элементов вкладки 'Настройки/Лицензии', 'Настройки/Пользователи', карточки текущего пользователя
parent
1ad9ceb256
commit
ce9ff3e27d
|
|
@ -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 = loc = page.locator(ModalWindowLocators.CHANDE_PASSWORD_WINDOW_NEW_PASSWORD)
|
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 = loc = page.locator(ModalWindowLocators.CHANDE_PASSWORD_WINDOW_CHECK_PASSWORD)
|
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)
|
||||||
|
|
||||||
|
|
@ -71,10 +71,10 @@ class ChangePasswordModalWindow(ModalWindowComponent):
|
||||||
self.add_content_item("input_form_error_message", input_form_error_message)
|
self.add_content_item("input_form_error_message", input_form_error_message)
|
||||||
|
|
||||||
# Добавление кнопок действий
|
# Добавление кнопок действий
|
||||||
locator_button_save = self.page.get_by_role("button", name="Сохранить")
|
locator_button_save = page.locator(ModalWindowLocators.CHANDE_PASSWORD_WINDOW_BUTTON_SAVE)
|
||||||
self.add_button(locator_button_save, "save")
|
self.add_button(locator_button_save, "save")
|
||||||
|
|
||||||
locator_button_cancel = self.page.get_by_role("button", name="Отменить")
|
locator_button_cancel = page.locator(ModalWindowLocators.CHANDE_PASSWORD_WINDOW_BUTTON_CANCEL)
|
||||||
self.add_button(locator_button_cancel, "cancel")
|
self.add_button(locator_button_cancel, "cancel")
|
||||||
|
|
||||||
# Alert при успешном добавлении пользователя
|
# Alert при успешном добавлении пользователя
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ from components_derived.modal_change_password import ChangePasswordModalWindow
|
||||||
|
|
||||||
logger = get_logger("USER_CARD")
|
logger = get_logger("USER_CARD")
|
||||||
|
|
||||||
|
|
||||||
class UserCard(BaseComponent):
|
class UserCard(BaseComponent):
|
||||||
"""Компонент карточка.
|
"""Компонент карточка.
|
||||||
|
|
||||||
|
|
@ -36,37 +35,37 @@ class UserCard(BaseComponent):
|
||||||
# Обновленные локаторы согласно новой структуре карточки
|
# Обновленные локаторы согласно новой структуре карточки
|
||||||
self.current_user_name = Text(
|
self.current_user_name = Text(
|
||||||
page,
|
page,
|
||||||
card_locator.locator("xpath=/div/div[1]"), # Изменено с div[2] на div[1]
|
card_locator.locator("xpath=/div[@class='v-card__text']/div/div[1]"), # Изменено с div[2] на div[1]
|
||||||
"current user name"
|
"current user name"
|
||||||
)
|
)
|
||||||
self.current_user_role = Text(
|
self.current_user_role = Text(
|
||||||
page,
|
page,
|
||||||
card_locator.locator("xpath=/div/div[2]"), # Изменено с div[3] на div[2]
|
card_locator.locator("xpath=/div[@class='v-card__text']/div/div[2]"), # Изменено с div[3] на div[2]
|
||||||
"current user role"
|
"current user role"
|
||||||
)
|
)
|
||||||
self.login_time = Text(
|
self.login_time = Text(
|
||||||
page,
|
page,
|
||||||
card_locator.locator("xpath=/div/div[3]"), # Изменено с div[4] на div[3]
|
card_locator.locator("xpath=/div[@class='v-card__text']/div/div[3]"), # Изменено с div[4] на div[3]
|
||||||
"login time"
|
"login time"
|
||||||
)
|
)
|
||||||
self.session_time = Text(
|
self.session_time = Text(
|
||||||
page,
|
page,
|
||||||
card_locator.locator("xpath=/div/div[4]"), # Изменено с div[5] на div[4]
|
card_locator.locator("xpath=/div[@class='v-card__text']/div/div[4]"), # Изменено с div[5] на div[4]
|
||||||
"session time" # Исправлено имя с "current user name" на "session time"
|
"session time" # Исправлено имя с "current user name" на "session time"
|
||||||
)
|
)
|
||||||
self.logout_button = Button(
|
self.logout_button = Button(
|
||||||
page,
|
page,
|
||||||
page.get_by_role("button", name="Выйти"),
|
card_locator.locator(UserCardLocators.BUTTON_LOGOUT),
|
||||||
"logout button"
|
"logout button"
|
||||||
)
|
)
|
||||||
self.change_password_button = Button(
|
self.change_password_button = Button(
|
||||||
page,
|
page,
|
||||||
page.get_by_role("button", name="Изменить пароль"),
|
card_locator.locator(UserCardLocators.BUTTON_CHANGE_PASSWORD),
|
||||||
"change password button"
|
"change password button"
|
||||||
)
|
)
|
||||||
self.close_button = Button(
|
self.close_button = Button(
|
||||||
page,
|
page,
|
||||||
page.get_by_role("button", name="Закрыть"),
|
card_locator.locator(UserCardLocators.BUTTON_CLOSE),
|
||||||
"close button"
|
"close button"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -148,6 +147,6 @@ class UserCard(BaseComponent):
|
||||||
Raises:
|
Raises:
|
||||||
AssertionError: Если карточка пользователя все еще открыта.
|
AssertionError: Если карточка пользователя все еще открыта.
|
||||||
"""
|
"""
|
||||||
card_locator = self.page.locator(UserCardLocators.CARD_USER).locator("xpath=../..")
|
card_locator = self.page.locator(UserCardLocators.CARD_USER).locator("..")
|
||||||
class_attr = card_locator.get_attribute('class')
|
class_attr = card_locator.get_attribute('class')
|
||||||
assert 'menuable__content__active' not in class_attr, "User card should be closed"
|
assert 'menuable__content__active' not in class_attr, "User card should be closed"
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ class ButtonLocators:
|
||||||
- Кнопка удаления сессии
|
- Кнопка удаления сессии
|
||||||
"""
|
"""
|
||||||
|
|
||||||
BUTTON_LICENSE_UPDATE = "//div[@class='scrollarea__footer']//button"
|
BUTTON_LICENSE_UPDATE = "//button[@data-testid='LICENSE__btn__setLicense']"
|
||||||
|
|
||||||
TOOLTIP = "//div[contains(@class,'v-tooltip__content menuable__content__active')]"
|
TOOLTIP = "//div[contains(@class,'v-tooltip__content menuable__content__active')]"
|
||||||
BUTTON_DELETE_SESSION = "button.v-btn--icon svg[fill='#4caf50']"
|
BUTTON_DELETE_SESSION = "button.v-btn--icon svg[fill='#4caf50']"
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,6 @@ class InputLocators:
|
||||||
|
|
||||||
Содержит XPath локаторы для:
|
Содержит XPath локаторы для:
|
||||||
LICENSE_ID_UPDATE (str): поля ввода идентификатора лицензии в подвале
|
LICENSE_ID_UPDATE (str): поля ввода идентификатора лицензии в подвале
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
LICENSE_ID_UPDATE = "//div[@class='scrollarea__footer']//div[@class='v-input__control']//textarea"
|
LICENSE_ID_UPDATE = "//div[@class='v-input__control']//textarea[@data-testid='LICENSE__textarea__licenseKey']"
|
||||||
|
|
|
||||||
|
|
@ -45,3 +45,6 @@ class ModalWindowLocators:
|
||||||
CHANDE_PASSWORD_WINDOW_CURRENT_PASSWORD = "//input[@data-testid='CHANGE_PASS_CARD__text-field__current_password']"
|
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_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']"
|
CHANDE_PASSWORD_WINDOW_CHECK_PASSWORD = "//input[@data-testid='CHANGE_PASS_CARD__text-field__check_password']"
|
||||||
|
CHANDE_PASSWORD_WINDOW_BUTTON_SAVE = "//button[@data-testid='CHANGE_PASS_CARD__btn__save']"
|
||||||
|
CHANDE_PASSWORD_WINDOW_BUTTON_CANCEL = "//button[@data-testid='CHANGE_PASS_CARD__btn__cancel']"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,15 +9,13 @@ class UserCardLocators:
|
||||||
|
|
||||||
Содержит XPath локаторы для:
|
Содержит XPath локаторы для:
|
||||||
CARD_USER (str): карточки текущего пользователя.
|
CARD_USER (str): карточки текущего пользователя.
|
||||||
DIALOG_USER_SETTINGS (str): окна просмотра сессионных данных пользователей.
|
BUTTON_LOGOUT (str): кнопка выхода из приложения.
|
||||||
HEADER_DIALOG_USER_SETTINGS (str): строки с заголовком окна и кнопкой закрытия.
|
BUTTON_CHANGE_PASSWORD (str): кнопка открытия окна смены пароля.
|
||||||
TITLE_DIALOG_USER_SETTINGS (str): заголовка окна.
|
BUTTON_CLOSE (str): кнопка закрытия окна текущего пользователя.
|
||||||
TABLE_WORK_AREA (str): таблицы с сессионными данными пользователей.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
CARD_USER = "//div[@class='v-card__text']"
|
# CARD_USER = "//div[@class='v-card__text']"
|
||||||
|
CARD_USER = "//div[@data-testid='BASELINE__card__user']"
|
||||||
DIALOG_USER_SETTINGS = "//div[@class='dialog-drag']"
|
BUTTON_LOGOUT = "//button[@data-testid='BASELINE__btn__user.menu__logout']"
|
||||||
HEADER_DIALOG_USER_SETTINGS = "xpath=/div[@class='dialog-header']"
|
BUTTON_CHANGE_PASSWORD = "//button[@data-testid='BASELINE__btn__user.menu__change_password']"
|
||||||
TITLE_DIALOG_USER_SETTINGS = "xpath=/div[@class='dialog-header']/div[@class='title']"
|
BUTTON_CLOSE = "//button[@data-testid='BASELINE__btn__user.menu__close']"
|
||||||
TABLE_WORK_AREA = "//div[@class='dialog-body']//table"
|
|
||||||
|
|
|
||||||
|
|
@ -32,17 +32,18 @@ class UsersTab(BasePage):
|
||||||
|
|
||||||
super().__init__(page)
|
super().__init__(page)
|
||||||
|
|
||||||
locator_button_1 = self.page.get_by_role("navigation").filter(
|
|
||||||
has_text=re.compile("Пользователи")
|
|
||||||
).get_by_role("button").nth(0)
|
|
||||||
locator_button_2 = self.page.get_by_role("navigation").filter(
|
|
||||||
has_text=re.compile("Пользователи")
|
|
||||||
).get_by_role("button").nth(1)
|
|
||||||
|
|
||||||
self.toolbar = ToolbarComponent(page, "Пользователи")
|
self.toolbar = ToolbarComponent(page, "Пользователи")
|
||||||
self.toolbar.add_tooltip_button(locator_button_1, "edit")
|
toolbar_button_edit = self.page.get_by_role("navigation").filter(has_text=re.compile("Пользователи")). \
|
||||||
self.toolbar.add_tooltip_button(locator_button_1, "add_user")
|
locator("//button[@data-testid='USERS__btn__edit']")
|
||||||
self.toolbar.add_tooltip_button(locator_button_2, "close")
|
self.toolbar.add_tooltip_button(toolbar_button_edit, "edit")
|
||||||
|
|
||||||
|
toolbar_button_add_user = self.page.get_by_role("navigation").filter(has_text=re.compile("Пользователи")). \
|
||||||
|
locator("//button[@data-testid='USERS__btn__onAdd']")
|
||||||
|
self.toolbar.add_tooltip_button(toolbar_button_add_user, "add_user")
|
||||||
|
|
||||||
|
toolbar_button_close = self.page.get_by_role("navigation").filter(has_text=re.compile("Пользователи")). \
|
||||||
|
locator("//button[@data-testid='USERS__btn__close']")
|
||||||
|
self.toolbar.add_tooltip_button(toolbar_button_close, "close")
|
||||||
|
|
||||||
self.users_table = TableComponent(page)
|
self.users_table = TableComponent(page)
|
||||||
self.modal_windows = {}
|
self.modal_windows = {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue