Актуализация теста вкладки Сеансы/Настройки после изменения UI
parent
edd91e66fc
commit
6e5eeaf4d6
|
|
@ -28,6 +28,26 @@ class BaseComponent:
|
|||
self.page = page
|
||||
|
||||
# Действия:
|
||||
def get_input_fields_locators(self, container_locator: Locator, css_class: str) -> dict:
|
||||
"""Получение объекта словаря имя поля ввода : Locator.
|
||||
|
||||
Args:
|
||||
locator: объект Locator.
|
||||
css_class: css класс для уточнения положения искомого объекта в DOM.
|
||||
Returns:
|
||||
dict: словарь имя поля ввода : Locator.
|
||||
"""
|
||||
|
||||
fields_locators = {}
|
||||
|
||||
elements = container_locator.locator(f"div.flex.{css_class} div.v-text-field__slot > input").all()
|
||||
|
||||
for el in elements:
|
||||
val = el.input_value().strip()
|
||||
if val:
|
||||
fields_locators[val] = el.locator("../ancestor::div[6]")
|
||||
return fields_locators
|
||||
|
||||
def get_locator(self, locator: str | Locator) -> Locator:
|
||||
"""Получение объекта Locator из строки или существующего Locator.
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@ class SettingsFormLocators:
|
|||
SETTTINGS_FORM_SCROLL_CONTAINER = "//div[contains(@class, 'scrollarea__body')]"
|
||||
SETTTINGS_FORM_TITLE = f"{SETTTINGS_FORM_SCROLL_CONTAINER}//div[contains(@class, 'v-toolbar__title')]"
|
||||
|
||||
SETTINGS_FORM_INPUT_FORM_CONTAINER = "//nav[contains(@class, 'active v-toolbar')]/following-sibling::div"
|
||||
SETTINGS_FORM_INPUT_FIELD = "div:nth-child(2) div.v-text-field__slot > input"
|
||||
SETTINGS_FORM_INPUT_VALUE_SUFFIX = "div:nth-child(2) div.v-text-field__slot div.v-text-field__suffix"
|
||||
|
||||
DROPDOWN_LIST = "//div[contains(@class, 'menuable__content__active')]"
|
||||
SELECTED_VALUES = "//div[@class='v-select__selections']"
|
||||
CLEAR_SELECTION_BUTTON = "div.v-input__icon--clear"
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import re
|
|||
from playwright.sync_api import Page
|
||||
from locators.settings_form_locators import SettingsFormLocators
|
||||
from elements.text_input_element import TextInput
|
||||
from elements.text_element import Text
|
||||
from components.toolbar_component import ToolbarComponent
|
||||
from components.alert_component import AlertComponent
|
||||
from components_derived.settings_form_component import SettingsFormComponent
|
||||
|
|
@ -45,58 +44,32 @@ class SessionSettingsTab(BasePage):
|
|||
|
||||
self.settings_form.add_toolbar_title("Время жизни сеанса")
|
||||
|
||||
admin_setting_label = Text(page,
|
||||
page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_text('Администратор'),
|
||||
"admin_setting_label")
|
||||
self.settings_form.add_content_item("admin_setting_label", admin_setting_label)
|
||||
css_class = "xs4"
|
||||
container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FORM_CONTAINER)
|
||||
self.input_fields_locators = self.settings_form.get_input_fields_locators(container_locator, css_class)
|
||||
|
||||
loc_admin = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_label('Администратор')
|
||||
loc = self.input_fields_locators.get("Администратор")
|
||||
loc_admin = loc.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FIELD)
|
||||
admin_setting = TextInput(page, loc_admin, "admin_setting")
|
||||
self.settings_form.add_content_item("admin_setting", admin_setting)
|
||||
|
||||
operator_setting_label = Text(page,
|
||||
page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_text('Оператор'),
|
||||
"operator_setting_label")
|
||||
self.settings_form.add_content_item("operator_setting_label", operator_setting_label)
|
||||
|
||||
loc_oper = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_label('Оператор')
|
||||
loc = self.input_fields_locators.get("Оператор")
|
||||
loc_oper = loc.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FIELD)
|
||||
operator_setting = TextInput(page, loc_oper, "operator_setting")
|
||||
self.settings_form.add_content_item("operator_setting", operator_setting)
|
||||
|
||||
manager_setting_label = Text(page,
|
||||
page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_text('Контактное лицо'),
|
||||
"manager_setting_label")
|
||||
self.settings_form.add_content_item("manager_setting_label", manager_setting_label)
|
||||
|
||||
loc_manager = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_label('Контактное лицо')
|
||||
loc = self.input_fields_locators.get("Контактное лицо")
|
||||
loc_manager = loc.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FIELD)
|
||||
manager_setting = TextInput(page, loc_manager, "manager_setting")
|
||||
self.settings_form.add_content_item("manager_setting", manager_setting)
|
||||
|
||||
inform_secur_user_setting_label = Text(page,
|
||||
page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_text('Специалист информационной безопасности'),
|
||||
"inform_secur_user_setting_label")
|
||||
self.settings_form.add_content_item("inform_secur_user_setting_label", inform_secur_user_setting_label)
|
||||
|
||||
loc_inform_secur_user = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_label('Специалист информационной безопасности')
|
||||
loc = self.input_fields_locators.get("Специалист информационной безопасности")
|
||||
loc_inform_secur_user = loc.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FIELD)
|
||||
inform_secur_user_setting = TextInput(page, loc_inform_secur_user, "inform_secur_user_setting")
|
||||
self.settings_form.add_content_item("inform_secur_user_setting", inform_secur_user_setting)
|
||||
|
||||
collector_setting_label = Text(page,
|
||||
page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_text('$collector'),
|
||||
"collector_setting_label")
|
||||
self.settings_form.add_content_item("collector_setting_label", collector_setting_label)
|
||||
|
||||
loc_collector = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
|
||||
get_by_label('$collector')
|
||||
loc = self.input_fields_locators.get('$collector')
|
||||
loc_collector = loc.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FIELD)
|
||||
collector_setting = TextInput(page, loc_collector, "collector_setting")
|
||||
self.settings_form.add_content_item("collector_setting", collector_setting)
|
||||
|
||||
|
|
@ -155,27 +128,6 @@ class SessionSettingsTab(BasePage):
|
|||
assert False, f"Got unsupported field name {field_name}"
|
||||
return field
|
||||
|
||||
def get_label_by_name(self, label_name: str) -> Text:
|
||||
"""Возвращает элемент название поля ввода по его имени.
|
||||
|
||||
Returns:
|
||||
Text: Элемент название поле ввода.
|
||||
"""
|
||||
|
||||
if label_name == "administrator":
|
||||
label = self.settings_form.get_content_item("admin_setting_label")
|
||||
elif label_name == "operator":
|
||||
label = self.settings_form.get_content_item("operator_setting_label")
|
||||
elif label_name == "manager":
|
||||
label = self.settings_form.get_content_item("manager_setting_label")
|
||||
elif label_name == "inform_secur_user":
|
||||
label = self.settings_form.get_content_item("inform_secur_user_setting_label")
|
||||
elif label_name == '$collector':
|
||||
label = self.settings_form.get_content_item("collector_setting_label")
|
||||
else:
|
||||
assert False, f"Got unsupported label name {label_name}"
|
||||
return label
|
||||
|
||||
def get_setting_value(self, field_name: str) -> str:
|
||||
"""Возвращает текущее значение требуемого поля настроек.
|
||||
|
||||
|
|
@ -248,17 +200,31 @@ class SessionSettingsTab(BasePage):
|
|||
def check_content(self):
|
||||
"""Проверяет наличие и корректность всех элементов формы."""
|
||||
|
||||
expected_input_field_names = ["Администратор", "Оператор",
|
||||
"Специалист информационной безопасности",
|
||||
"Контактное лицо", "$collector"]
|
||||
|
||||
self.should_be_toolbar()
|
||||
self.should_be_toolbar_buttons()
|
||||
|
||||
self.should_be_form_toolbar()
|
||||
|
||||
actual_input_field_names = self.input_fields_locators.keys()
|
||||
assert set(actual_input_field_names) == set(expected_input_field_names), \
|
||||
f"Misscomparison input field names: Expected {expected_input_field_names}, Actual {actual_input_field_names}"
|
||||
|
||||
for name in self.settings_form.content_items.keys():
|
||||
item = self.settings_form.get_content_item(name)
|
||||
item.check_visibility(
|
||||
f"Session settings input form item with name '{name}' is missing"
|
||||
)
|
||||
|
||||
for name in actual_input_field_names:
|
||||
value_suffix_loc = self.input_fields_locators.get(name).\
|
||||
locator(SettingsFormLocators.SETTINGS_FORM_INPUT_VALUE_SUFFIX)
|
||||
value_suffix = value_suffix_loc.text_content().strip()
|
||||
assert value_suffix == "минут", f"Incorrect value suffix for field {name}"
|
||||
|
||||
def check_vertical_scrolling(self) -> bool:
|
||||
"""Проверка возможности вертикального скроллинга формы настроек времени жизни сессии.
|
||||
"""
|
||||
|
|
@ -327,4 +293,4 @@ class SessionSettingsTab(BasePage):
|
|||
field_value = self.settings_form.get_content_item("collector_setting").get_input_value().strip()
|
||||
else:
|
||||
assert False, f"Got unsupported field name {key}"
|
||||
assert field_value == str(value), f"{key} field value {field_value} is not equal value {value} from data base"
|
||||
assert field_value==str(value),f"{key} field value {field_value} is not equal value {value} from data base"
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class TestSessionSettingsForm:
|
|||
assert is_scrollable_vertically, "Should be vertical scrolling"
|
||||
|
||||
sst.scroll_down()
|
||||
sst.get_label_by_name('$collector').check_visibility("Text '$collector' should be visible")
|
||||
sst.get_field_by_name('$collector').check_visibility("Text '$collector' should be visible")
|
||||
sst.wait_for_timeout(3000)
|
||||
|
||||
sst.scroll_up()
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class TestSessionSettingsTab:
|
|||
main_page.click_subpanel_item("Сеансы")
|
||||
main_page.click_subpanel_item("Настройки", parent="Сеансы")
|
||||
|
||||
# @pytest.mark.develop
|
||||
# @pytest.mark.develop
|
||||
def test_session_settings_tab_content(self, browser: Page) -> None:
|
||||
"""Тест содержимого вкладки 'Сеансы/Настройки'.
|
||||
|
||||
|
|
@ -100,7 +100,8 @@ class TestSessionSettingsTab:
|
|||
|
||||
# @pytest.mark.develop
|
||||
def test_edit_session_setting_by_arrow(self, browser: Page) -> None:
|
||||
"""Тест проверки возможности увеличения/уменьшения значения выбранного поля формы с помощью стрелочек Вверх/Вниз.
|
||||
"""Тест проверки возможности увеличения/уменьшения значения выбранного поля формы с помощью
|
||||
стрелочек Вверх/Вниз.
|
||||
"""
|
||||
|
||||
field_name = 'operator'
|
||||
|
|
|
|||
Loading…
Reference in New Issue