Актуализация документации

pull/1/head
Radislav 2025-09-26 14:28:59 +03:00
parent 93005b6cfe
commit be28ffceaa
86 changed files with 31623 additions and 2398 deletions

View File

@ -117,9 +117,6 @@ class EventsContainerComponent(BaseComponent):
def get_events_table_content(self) -> list[list[str]]:
"""Возвращает содержимое таблицы, включая заголовки.
Args:
locator: Локатор таблицы.
Returns:
Двумерный список с содержимым таблицы.
"""

View File

@ -0,0 +1,6 @@
# EventsContainerComponent
::: components.events_container_component
handler: python
options:
show_source: true

View File

@ -0,0 +1,6 @@
# SystemLogEventsContainer
::: components_derived.container_system_log_events
handler: python
options:
show_source: true

View File

@ -0,0 +1,6 @@
# ZTPTemplatesTab
::: pages.ztp_templates_tab
handler: python
options:
show_source: true

View File

@ -0,0 +1,6 @@
# TestSystemLogEventsContainer
::: tests.e2e.test_system_log_events_container
handler: python
options:
show_source: true

View File

@ -0,0 +1,6 @@
# TestZTPTemplatesTab
::: tests.e2e.test_ztp_templates_tab
handler: python
options:
show_source: true

View File

@ -24,7 +24,7 @@ nav:
- BaseElement: elements/base_element.md
- Button: elements/button_element.md
- Checkbox: elements/checkbox_element.md
- Icon: elements/icon_element.md #new
- Icon: elements/icon_element.md
- TabButton: elements/tab_button_element.md
- Text: elements/text_element.md
- TextInput: elements/text_input_element.md
@ -36,19 +36,21 @@ nav:
- ConfirmComponent: components/confirm_component.md
- DropdownList: components/dropdown_list_component.md
- EventPanelComponent: components/eventbar_component.md
- EventsContainerComponent: components/events_container_component.md #new
- JsonContainerComponent: components/json_container_component.md
- ModalWindowComponent: components/modal_window_component.md
- NavigationPanelComponent: components/navbar_component.md
- TableComponent: components/table_component.md
- ToolbarComponent: components/toolbar_component.md
- Компоненты производные UI:
- UserSettingsDialogWindow: components_derived/dialog_user_settings.md #new
- SystemLogEventsContainer: components_derived/container_system_log_events.md #new
- UserSettingsDialogWindow: components_derived/dialog_user_settings.md
- AddADUserModalWindow: components_derived/modal_add_AD_user.md
- AddLocalUserModalWindow: components_derived/modal_add_local_user.md
- ChangePasswordModalWindow: components_derived/modal_change_password.md #new
- ChangePasswordModalWindow: components_derived/modal_change_password.md
- EditUserModalWindow: components_derived/modal_edit_user.md
- ViewTemplateModalWindow: components_derived/modal_view_template.md #new
- UserCard: components_derived/user_card.md #new
- ViewTemplateModalWindow: components_derived/modal_view_template.md
- UserCard: components_derived/user_card.md
- Локаторы:
- ButtonLocators: locators/button_locators.md
- ConfirmLocators: locators/confirm_locators.md
@ -58,10 +60,10 @@ nav:
- ModalWindowLocators: locators/modal_window_locators.md
- NavigationPanelLocators: locators/navigation_panel_locators.md
- TableLocators: locators/table_locators.md
- TextInputLocators: locators/text_input_locators.md #new
- TextInputLocators: locators/text_input_locators.md
- TextLocators: locators/text_locators.md
- ToolbarLocators: locators/toolbar_locators.md
- UserCardLocators: locators/user_card_locators.md #new
- UserCardLocators: locators/user_card_locators.md
- Страницы приложения:
- BasePage: pages/base_page.md
- LicenseTab: pages/license_tab.md
@ -69,8 +71,9 @@ nav:
- MainPage: pages/main_page.md
- ServiceStatusTab: pages/service_status_tab.md
- SessionTab: pages/session_tab.md
- TemplatesTab: pages/templates_tab.md #new
- TemplatesTab: pages/templates_tab.md
- UsersTab: pages/users_tab.md
- ZTPTemplatesTab: pages/ztp_templates_tab.md #new
- Тесты:
- End-to-End:
- TestEventPanel: tests/e2e/test_event_panel.md
@ -79,9 +82,11 @@ nav:
- TestLogin: tests/e2e/test_login.md
- TestServiceStatusTab: tests/e2e/test_service_status_tab.md
- TestSessionTab: tests/e2e/test_sessions_tab.md
- TestTemplatesTab: tests/e2e/test_templates_tab.md #new
- TestUserCard: tests/e2e/test_user_card.md #new
- TestSystemLogEventsContainer: tests/e2e/test_system_log_events_container.md #new
- TestTemplatesTab: tests/e2e/test_templates_tab.md
- TestUserCard: tests/e2e/test_user_card.md
- TestUsersTab: tests/e2e/test_users_tab.md
- TestZTPTemplatesTab: tests/e2e/test_ztp_templates_tab.md #new
- Компоненты:
- TestJsonContainer: tests/components/test_json_container.md
- TestNavigationPanel: tests/components/test_navigation_panel.md

View File

@ -53,14 +53,14 @@ class TemplatesTab(BasePage):
self.modal_windows[title] = ViewTemplateModalWindow(self.page, title)
def get_modal_window(self, title: str):
def get_modal_window(self, title: str) -> ViewTemplateModalWindow:
"""Возвращает модальное окно по заголовку.
Args:
title: Заголовок окна.
Returns:
ModalWindowComponent: Экземпляр модального окна.
ViewTemplateModalWindow: Экземпляр модального окна.
Raises:
AssertionError: Если окно не найдено.
@ -168,7 +168,7 @@ class TemplatesTab(BasePage):
Raises:
AssertionError: Если шаблон с указанным именем не найден
или структура ответа некорректна.
или структура ответа некорректна.
"""
# Проверяем, что ответ является списком шаблонов
assert isinstance(response_data, list), "API response is not a list of templates"

View File

@ -742,6 +742,27 @@
<li class="md-nav__item">
<a href="/components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/components/json_container_component/" class="md-nav__link">
@ -889,6 +910,27 @@
<li class="md-nav__item">
<a href="/components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/components_derived/dialog_user_settings/" class="md-nav__link">
@ -1534,6 +1576,27 @@
<li class="md-nav__item">
<a href="/pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1743,6 +1806,27 @@
<li class="md-nav__item">
<a href="/tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="/tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1800,6 +1884,27 @@
<li class="md-nav__item">
<a href="/tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -871,6 +871,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -1018,6 +1039,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1663,6 +1705,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1872,6 +1935,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1929,6 +2013,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -907,6 +907,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -1054,6 +1075,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1699,6 +1741,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1908,6 +1971,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1965,6 +2049,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -835,6 +835,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -982,6 +1003,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1627,6 +1669,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1836,6 +1899,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1893,6 +1977,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -934,6 +934,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -1081,6 +1102,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1726,6 +1768,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1935,6 +1998,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1992,6 +2076,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -871,6 +871,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -1018,6 +1039,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1663,6 +1705,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1872,6 +1935,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1929,6 +2013,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -12,7 +12,7 @@
<link rel="prev" href="../dropdown_list_component/">
<link rel="next" href="../json_container_component/">
<link rel="next" href="../events_container_component/">
<link rel="icon" href="../../assets/images/favicon.png">
@ -822,15 +822,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components.eventbar_component.EventPanelComponent.check_user_card_content" class="md-nav__link">
<span class="md-ellipsis">
check_user_card_content
</span>
</a>
</li>
<li class="md-nav__item">
@ -849,6 +840,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components.eventbar_component.EventPanelComponent.click_system_log_tab" class="md-nav__link">
<span class="md-ellipsis">
click_system_log_tab
</span>
</a>
</li>
<li class="md-nav__item">
@ -952,6 +952,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -1099,6 +1120,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1744,6 +1786,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1953,6 +2016,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -2010,6 +2094,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2411,15 +2516,6 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components.eventbar_component.EventPanelComponent.check_user_card_content" class="md-nav__link">
<span class="md-ellipsis">
check_user_card_content
</span>
</a>
</li>
<li class="md-nav__item">
@ -2438,6 +2534,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components.eventbar_component.EventPanelComponent.click_system_log_tab" class="md-nav__link">
<span class="md-ellipsis">
click_system_log_tab
</span>
</a>
</li>
<li class="md-nav__item">
@ -2596,8 +2701,7 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 15</span>
<span class="normal"> 16</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 16</span>
<span class="normal"> 17</span>
<span class="normal"> 18</span>
<span class="normal"> 19</span>
@ -2743,7 +2847,12 @@
<span class="normal">159</span>
<span class="normal">160</span>
<span class="normal">161</span>
<span class="normal">162</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">EventPanelComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="normal">162</span>
<span class="normal">163</span>
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span>
<span class="normal">167</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">EventPanelComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Компонент панели событий. Предоставляет методы для взаимодействия с ней.&quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
@ -2770,8 +2879,6 @@
<span class="bp">self</span><span class="o">.</span><span class="n">search_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">buttons_service_locators</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s2">&quot;search_button&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">buttons_service_locators</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;user_button&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_card</span> <span class="o">=</span> <span class="n">UserCard</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
<span class="c1"># Действия:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки галочка вверх.&quot;&quot;&quot;</span>
@ -2787,12 +2894,23 @@
<span class="n">get_by_role</span><span class="p">(</span><span class="s2">&quot;button&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">has_text</span><span class="o">=</span><span class="s1">&#39;expand_more&#39;</span><span class="p">)</span>
<span class="n">button_locator</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_system_log_tab</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">SystemLogEventsContainer</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие tab-кнопки Системный журнал.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">system_log_tab</span><span class="o">.</span><span class="n">check_visibility</span><span class="p">(</span><span class="s2">&quot;System log tab button is missing on event panel&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">system_log_tab</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="n">system_log_events</span> <span class="o">=</span> <span class="n">SystemLogEventsContainer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">EventPanelLocators</span><span class="o">.</span><span class="n">CONTAINER_SYSTEM_LOG_EVENTS</span><span class="p">)</span>
<span class="k">return</span> <span class="n">system_log_events</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">UserCard</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки пользователя.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">should_be_user_button</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">user_card</span>
<span class="n">user_card</span> <span class="o">=</span> <span class="n">UserCard</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">)</span>
<span class="k">return</span> <span class="n">user_card</span>
<span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет выход из системы.&quot;&quot;&quot;</span>
@ -2860,11 +2978,6 @@
<span class="k">return</span> <span class="kc">False</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_user_card_content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие и корректность элементов карточки пользователя.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_card</span><span class="o">.</span><span class="n">check_content</span><span class="p">()</span>
<span class="k">def</span><span class="w"> </span><span class="nf">should_be_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки пользователя.&quot;&quot;&quot;</span>
@ -2953,8 +3066,7 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">18</span>
<span class="normal">19</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
@ -2976,8 +3088,7 @@
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="normal">41</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Инициализирует компонент панели событий.</span>
<span class="sd"> Args:</span>
@ -3000,8 +3111,6 @@
<span class="n">buttons_service_locators</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">EventPanelLocators</span><span class="o">.</span><span class="n">BUTTONS_SERVICE</span><span class="p">)</span><span class="o">.</span><span class="n">get_by_role</span><span class="p">(</span><span class="s2">&quot;button&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">search_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">buttons_service_locators</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="s2">&quot;search_button&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">buttons_service_locators</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;user_button&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_card</span> <span class="o">=</span> <span class="n">UserCard</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -3024,15 +3133,15 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span>
<span class="normal">117</span>
<span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки галочка вверх.&quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span>
@ -3063,15 +3172,15 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки галочка вниз&quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span>
@ -3089,35 +3198,6 @@
<div class="doc doc-object doc-function">
<h3 id="components.eventbar_component.EventPanelComponent.check_user_card_content" class="doc doc-heading">
<code class="highlight language-python"><span class="n">check_user_card_content</span><span class="p">()</span></code>
</h3>
<div class="doc doc-contents ">
<p>Проверяет наличие и корректность элементов карточки пользователя.</p>
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_user_card_content</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие и корректность элементов карточки пользователя.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_card</span><span class="o">.</span><span class="n">check_content</span><span class="p">()</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="components.eventbar_component.EventPanelComponent.click_expand_less_button" class="doc doc-heading">
<code class="highlight language-python"><span class="n">click_expand_less_button</span><span class="p">()</span></code>
@ -3131,12 +3211,12 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">49</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки галочка вверх.&quot;&quot;&quot;</span>
<span class="n">button_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">EventPanelLocators</span><span class="o">.</span><span class="n">TAB_EXPAND_BUTTONS</span><span class="p">)</span><span class="o">.</span>\
@ -3164,12 +3244,12 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">56</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки галочка вниз.&quot;&quot;&quot;</span>
<span class="n">button_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">EventPanelLocators</span><span class="o">.</span><span class="n">TAB_EXPAND_BUTTONS</span><span class="p">)</span><span class="o">.</span>\
@ -3184,6 +3264,43 @@
<div class="doc doc-object doc-function">
<h3 id="components.eventbar_component.EventPanelComponent.click_system_log_tab" class="doc doc-heading">
<code class="highlight language-python"><span class="n">click_system_log_tab</span><span class="p">()</span></code>
</h3>
<div class="doc doc-contents ">
<p>Выполняет нажатие tab-кнопки Системный журнал.</p>
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">58</span>
<span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span>
<span class="normal">62</span>
<span class="normal">63</span>
<span class="normal">64</span>
<span class="normal">65</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_system_log_tab</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">SystemLogEventsContainer</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие tab-кнопки Системный журнал.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">system_log_tab</span><span class="o">.</span><span class="n">check_visibility</span><span class="p">(</span><span class="s2">&quot;System log tab button is missing on event panel&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">system_log_tab</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="n">system_log_events</span> <span class="o">=</span> <span class="n">SystemLogEventsContainer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">EventPanelLocators</span><span class="o">.</span><span class="n">CONTAINER_SYSTEM_LOG_EVENTS</span><span class="p">)</span>
<span class="k">return</span> <span class="n">system_log_events</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="components.eventbar_component.EventPanelComponent.click_user_button" class="doc doc-heading">
<code class="highlight language-python"><span class="n">click_user_button</span><span class="p">()</span></code>
@ -3197,17 +3314,21 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span>
<span class="normal">62</span>
<span class="normal">63</span>
<span class="normal">64</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">UserCard</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span>
<span class="normal">70</span>
<span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">UserCard</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки пользователя.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">should_be_user_button</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">user_card</span>
<span class="n">user_card</span> <span class="o">=</span> <span class="n">UserCard</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">)</span>
<span class="k">return</span> <span class="n">user_card</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -3230,11 +3351,11 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">66</span>
<span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span>
<span class="normal">70</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет выход из системы.&quot;&quot;&quot;</span>
<span class="n">user_card</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">click_user_button</span><span class="p">()</span>
@ -3261,17 +3382,17 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span>
<span class="normal">93</span>
<span class="normal">94</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_button_values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">{}:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 94</span>
<span class="normal"> 95</span>
<span class="normal"> 96</span>
<span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span>
<span class="normal">102</span>
<span class="normal">103</span>
<span class="normal">104</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_button_values</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">{}:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает набор значений кнопок счетчиков событий.&quot;&quot;&quot;</span>
<span class="n">event_buttons_texts</span> <span class="o">=</span> <span class="p">{}</span>
@ -3304,17 +3425,17 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span>
<span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span>
<span class="normal">81</span>
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_tooltip_texts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">[]:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_tooltip_texts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">[]:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает список текстов всплывающих подсказок кнопок счетчиков событий.&quot;&quot;&quot;</span>
<span class="n">tooltip_texts</span> <span class="o">=</span> <span class="p">[]</span>
@ -3347,20 +3468,20 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 96</span>
<span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span>
<span class="normal">102</span>
<span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">106</span>
<span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_panel_position</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span>
<span class="normal">117</span>
<span class="normal">118</span>
<span class="normal">119</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_panel_position</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает текущее положение панели событий относительно страницы: &quot;top&quot;, &quot;center&quot;,&quot;bottom&quot;.&quot;&quot;&quot;</span>
<span class="n">style_attr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">EventPanelLocators</span><span class="o">.</span><span class="n">AREA_EVENTS</span><span class="p">)</span><span class="o">.</span><span class="n">get_attribute</span><span class="p">(</span><span class="s2">&quot;style&quot;</span><span class="p">)</span>
@ -3396,13 +3517,13 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span>
<span class="normal">161</span>
<span class="normal">162</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_event_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">161</span>
<span class="normal">162</span>
<span class="normal">163</span>
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span>
<span class="normal">167</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_event_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие блока кнопок-счетчиков событий.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">unknown_reason_button</span><span class="o">.</span><span class="n">check_visibility</span><span class="p">(</span><span class="s2">&quot;Unknown reason event button is missing on event panel&quot;</span><span class="p">)</span>
@ -3431,10 +3552,10 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_search_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_search_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки поиска.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">search_button</span><span class="o">.</span><span class="n">check_visibility</span><span class="p">(</span><span class="s2">&quot;Search button is missing on event panel&quot;</span><span class="p">)</span>
@ -3460,14 +3581,14 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span>
<span class="normal">152</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">152</span>
<span class="normal">153</span>
<span class="normal">154</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_tab_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_tab_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие блока tab-кнопок Состояния, Действия, События, Обслуживание, Системный журнал.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">states_tab</span><span class="o">.</span><span class="n">check_have_text</span><span class="p">(</span><span class="s1">&#39;Состояния&#39;</span><span class="p">,</span> <span class="s2">&quot;Tab button with text Состояния is missing on event panel&quot;</span><span class="p">)</span>
@ -3497,10 +3618,10 @@
<details class="quote">
<summary>Source code in <code>components\eventbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки пользователя.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">user_button</span><span class="o">.</span><span class="n">check_visibility</span><span class="p">(</span><span class="s2">&quot;User button is missing on event panel&quot;</span><span class="p">)</span>

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
<link rel="prev" href="../eventbar_component/">
<link rel="prev" href="../events_container_component/">
<link rel="next" href="../modal_window_component/">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
@ -1000,6 +1021,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1645,6 +1687,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1854,6 +1917,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1911,6 +1995,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2550,53 +2655,10 @@
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span>
<span class="normal">167</span>
<span class="normal">168</span>
<span class="normal">169</span>
<span class="normal">170</span>
<span class="normal">171</span>
<span class="normal">172</span>
<span class="normal">173</span>
<span class="normal">174</span>
<span class="normal">175</span>
<span class="normal">176</span>
<span class="normal">177</span>
<span class="normal">178</span>
<span class="normal">179</span>
<span class="normal">180</span>
<span class="normal">181</span>
<span class="normal">182</span>
<span class="normal">183</span>
<span class="normal">184</span>
<span class="normal">185</span>
<span class="normal">186</span>
<span class="normal">187</span>
<span class="normal">188</span>
<span class="normal">189</span>
<span class="normal">190</span>
<span class="normal">191</span>
<span class="normal">192</span>
<span class="normal">193</span>
<span class="normal">194</span>
<span class="normal">195</span>
<span class="normal">196</span>
<span class="normal">197</span>
<span class="normal">198</span>
<span class="normal">199</span>
<span class="normal">200</span>
<span class="normal">201</span>
<span class="normal">202</span>
<span class="normal">203</span>
<span class="normal">204</span>
<span class="normal">205</span>
<span class="normal">206</span>
<span class="normal">207</span>
<span class="normal">208</span>
<span class="normal">209</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">JsonContainerComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="normal">167</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">JsonContainerComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Компонент для работы с JSON-данными на странице.</span>
<span class="sd"> Предоставляет методы чтения и проверки JSON-данных в контейнерах.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
@ -2605,11 +2667,8 @@
<span class="sd"> Args:</span>
<span class="sd"> page: Экземпляр страницы Playwright.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">page</span> <span class="o">=</span> <span class="n">page</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
<span class="c1"># Действия:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">format_json_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">json_string</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Форматирует строку JSON для корректного парсинга.</span>
@ -2619,7 +2678,6 @@
<span class="sd"> Returns:</span>
<span class="sd"> str: Отформатированная строка JSON.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">lines</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
<span class="n">formatted_lines</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">stack</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># Стек для отслеживания вложенности</span>
@ -2632,52 +2690,40 @@
<span class="c1"># Определяем тип текущей строки</span>
<span class="k">if</span> <span class="n">line</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">]:</span>
<span class="c1"># Начало объекта или массива</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">line</span><span class="p">)</span>
<span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
<span class="n">current_indent</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">elif</span> <span class="n">line</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">]:</span>
<span class="c1"># Конец объекта или массива</span>
<span class="n">current_indent</span> <span class="o">-=</span> <span class="mi">1</span>
<span class="k">if</span> <span class="n">stack</span> <span class="ow">and</span> <span class="n">stack</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">]:</span>
<span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">line</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;^\d+:\{&#39;</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
<span class="c1"># Элемент массива с индексом (0:{, 1:{, etc.)</span>
<span class="c1"># Убираем индекс и оставляем только {</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="s1">&#39;{&#39;</span><span class="p">)</span>
<span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{&#39;</span><span class="p">)</span>
<span class="n">current_indent</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">elif</span> <span class="s1">&#39;:&#39;</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
<span class="c1"># Пара ключ:значение</span>
<span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="c1"># Добавляем кавычки к ключу если их нет (включая $)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="n">key</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)):</span>
<span class="n">key</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;&quot;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">&quot;&#39;</span>
<span class="c1"># Обработка значений</span>
<span class="k">if</span> <span class="n">value</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">]:</span>
<span class="c1"># Значение - начало объекта или массива</span>
<span class="n">formatted_line</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&#39;</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">formatted_line</span><span class="p">)</span>
<span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="n">current_indent</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">elif</span> <span class="n">value</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">]:</span>
<span class="c1"># Не должно происходить, но на всякий случай</span>
<span class="n">current_indent</span> <span class="o">-=</span> <span class="mi">1</span>
<span class="n">formatted_line</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&#39;</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">formatted_line</span><span class="p">)</span>
<span class="k">if</span> <span class="n">stack</span><span class="p">:</span>
<span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Простое значение</span>
<span class="c1"># Добавляем кавычки к строковым значениям если их нет</span>
<span class="k">if</span> <span class="p">(</span><span class="n">value</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span> <span class="c1"># Для чисел с точкой</span>
<span class="k">if</span> <span class="p">(</span><span class="n">value</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span>
<span class="n">value</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;true&#39;</span><span class="p">,</span> <span class="s1">&#39;false&#39;</span><span class="p">,</span> <span class="s1">&#39;null&#39;</span><span class="p">]</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;{&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;[&#39;</span><span class="p">)):</span>
@ -2686,41 +2732,29 @@
<span class="n">formatted_line</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&#39;</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">formatted_line</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Простая строка (скорее всего значение в массиве)</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">line</span><span class="p">)</span>
<span class="c1"># Добавляем запятые где необходимо</span>
<span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">total_lines</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">current_line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">):</span>
<span class="c1"># Проверяем, нужно ли добавить запятую</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">total_lines</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">next_line</span> <span class="o">=</span> <span class="n">formatted_lines</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
<span class="c1"># Определяем, находимся ли мы внутри массива</span>
<span class="n">in_array</span> <span class="o">=</span> <span class="nb">any</span><span class="p">(</span><span class="n">bracket</span> <span class="o">==</span> <span class="s1">&#39;[&#39;</span> <span class="k">for</span> <span class="n">bracket</span> <span class="ow">in</span> <span class="n">stack</span><span class="p">)</span>
<span class="c1"># Не добавляем запятую если:</span>
<span class="c1"># - текущая строка это { или [</span>
<span class="c1"># - следующая строка это } или ]</span>
<span class="c1"># - текущая строка уже заканчивается запятой</span>
<span class="c1"># - следующая строка начинается с } или ] (для элементов массива)</span>
<span class="n">should_add_comma</span> <span class="o">=</span> <span class="p">(</span>
<span class="ow">not</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;{&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;[&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;]&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;]&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="p">(</span><span class="n">in_array</span> <span class="ow">and</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;]&#39;</span><span class="p">)</span> <span class="c1"># Не добавлять запятую перед закрытием массива</span>
<span class="p">)</span>
<span class="c1"># Упрощенная проверка условий для запятой</span>
<span class="n">no_comma_condition1</span> <span class="o">=</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">((</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">,</span> <span class="s1">&#39;,&#39;</span><span class="p">))</span>
<span class="n">no_comma_condition2</span> <span class="o">=</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">endswith</span><span class="p">((</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">))</span>
<span class="n">no_comma_condition3</span> <span class="o">=</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">((</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">))</span>
<span class="n">no_comma_condition4</span> <span class="o">=</span> <span class="n">in_array</span> <span class="ow">and</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;]&#39;</span>
<span class="c1"># Для элементов массива (объектов) добавляем запятую после }</span>
<span class="k">if</span> <span class="p">(</span><span class="n">in_array</span> <span class="ow">and</span>
<span class="n">current_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;}&#39;</span> <span class="ow">and</span>
<span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;]&#39;</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)):</span>
<span class="n">should_add_comma</span> <span class="o">=</span> <span class="ow">not</span> <span class="p">(</span><span class="n">no_comma_condition1</span> <span class="ow">or</span> <span class="n">no_comma_condition2</span> <span class="ow">or</span>
<span class="n">no_comma_condition3</span> <span class="ow">or</span> <span class="n">no_comma_condition4</span><span class="p">)</span>
<span class="c1"># Специальный случай для элементов массива</span>
<span class="k">if</span> <span class="p">(</span><span class="n">in_array</span> <span class="ow">and</span> <span class="n">current_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;}&#39;</span> <span class="ow">and</span>
<span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;]&#39;</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)):</span>
<span class="n">should_add_comma</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">should_add_comma</span><span class="p">:</span>
@ -2742,34 +2776,22 @@
<span class="sd"> Raises:</span>
<span class="sd"> json.JSONDecodeError: Если данные не могут быть преобразованы в JSON.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># Чтение JSON-содержимого из рабочей области</span>
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
<span class="n">json_string</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">inner_text</span><span class="p">()</span>
<span class="c1"># Сохранение исходной JSON строки в файл</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;json_string.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">json_string</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Исходная JSON строка сохранена в файл: json_string.txt&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">json_string</span><span class="p">)</span>
<span class="n">formatted_json_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_json_string</span><span class="p">(</span><span class="n">json_string</span><span class="p">)</span>
<span class="c1"># Сохранение отформатированной JSON строки в файл</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;formatted_json_string.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">formatted_json_string</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Отформатированная JSON строка сохранена в файл: formatted_json_string.txt&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">formatted_json_string</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">formatted_json_string</span><span class="p">)</span>
<span class="k">except</span> <span class="n">json</span><span class="o">.</span><span class="n">JSONDecodeError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="c1"># Дополнительная отладка</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;JSON decode error: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Formatted JSON: </span><span class="si">{</span><span class="n">formatted_json_string</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;JSON decode error: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;Formatted JSON: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">formatted_json_string</span><span class="p">)</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Invalid json content. Error: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="k">return</span> <span class="n">data</span>
<span class="c1"># Проверки:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_json_equals</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">actual</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span> <span class="n">expected</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Сравнивает JSON-объекты на идентичность.</span>
@ -2781,7 +2803,6 @@
<span class="sd"> Raises:</span>
<span class="sd"> AssertionError: Если объекты не идентичны.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">diff</span> <span class="o">=</span> <span class="n">jsondiff</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">expected</span><span class="p">,</span> <span class="n">actual</span><span class="p">,</span> <span class="n">syntax</span><span class="o">=</span><span class="s1">&#39;symmetric&#39;</span><span class="p">)</span>
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">diff</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">msg</span><span class="si">}</span><span class="s2">. DIFF is </span><span class="si">{</span><span class="n">diff</span><span class="si">}</span><span class="s2">&quot;</span>
</code></pre></div></td></tr></table></div>
@ -2846,21 +2867,19 @@
<details class="quote">
<summary>Source code in <code>components\json_container_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">25</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Инициализирует JSON-контейнер.</span>
<span class="sd"> Args:</span>
<span class="sd"> page: Экземпляр страницы Playwright.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">page</span> <span class="o">=</span> <span class="n">page</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -2969,20 +2988,19 @@
<details class="quote">
<summary>Source code in <code>components\json_container_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">196</span>
<span class="normal">197</span>
<span class="normal">198</span>
<span class="normal">199</span>
<span class="normal">200</span>
<span class="normal">201</span>
<span class="normal">202</span>
<span class="normal">203</span>
<span class="normal">204</span>
<span class="normal">205</span>
<span class="normal">206</span>
<span class="normal">207</span>
<span class="normal">208</span>
<span class="normal">209</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_json_equals</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">actual</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span> <span class="n">expected</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span>
<span class="normal">161</span>
<span class="normal">162</span>
<span class="normal">163</span>
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span>
<span class="normal">167</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_json_equals</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">actual</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span> <span class="n">expected</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span> <span class="n">msg</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Сравнивает JSON-объекты на идентичность.</span>
<span class="sd"> Args:</span>
@ -2993,7 +3011,6 @@
<span class="sd"> Raises:</span>
<span class="sd"> AssertionError: Если объекты не идентичны.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">diff</span> <span class="o">=</span> <span class="n">jsondiff</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">expected</span><span class="p">,</span> <span class="n">actual</span><span class="p">,</span> <span class="n">syntax</span><span class="o">=</span><span class="s1">&#39;symmetric&#39;</span><span class="p">)</span>
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">diff</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">msg</span><span class="si">}</span><span class="s2">. DIFF is </span><span class="si">{</span><span class="n">diff</span><span class="si">}</span><span class="s2">&quot;</span>
</code></pre></div></td></tr></table></div>
@ -3072,7 +3089,11 @@
<details class="quote">
<summary>Source code in <code>components\json_container_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 36</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 32</span>
<span class="normal"> 33</span>
<span class="normal"> 34</span>
<span class="normal"> 35</span>
<span class="normal"> 36</span>
<span class="normal"> 37</span>
<span class="normal"> 38</span>
<span class="normal"> 39</span>
@ -3161,36 +3182,7 @@
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span>
<span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span>
<span class="normal">152</span>
<span class="normal">153</span>
<span class="normal">154</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">format_json_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">json_string</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="normal">125</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">format_json_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">json_string</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Форматирует строку JSON для корректного парсинга.</span>
<span class="sd"> Args:</span>
@ -3199,7 +3191,6 @@
<span class="sd"> Returns:</span>
<span class="sd"> str: Отформатированная строка JSON.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">lines</span> <span class="o">=</span> <span class="n">json_string</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
<span class="n">formatted_lines</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">stack</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># Стек для отслеживания вложенности</span>
@ -3212,52 +3203,40 @@
<span class="c1"># Определяем тип текущей строки</span>
<span class="k">if</span> <span class="n">line</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">]:</span>
<span class="c1"># Начало объекта или массива</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">line</span><span class="p">)</span>
<span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
<span class="n">current_indent</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">elif</span> <span class="n">line</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">]:</span>
<span class="c1"># Конец объекта или массива</span>
<span class="n">current_indent</span> <span class="o">-=</span> <span class="mi">1</span>
<span class="k">if</span> <span class="n">stack</span> <span class="ow">and</span> <span class="n">stack</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">]:</span>
<span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">line</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;^\d+:\{&#39;</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
<span class="c1"># Элемент массива с индексом (0:{, 1:{, etc.)</span>
<span class="c1"># Убираем индекс и оставляем только {</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="s1">&#39;{&#39;</span><span class="p">)</span>
<span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;{&#39;</span><span class="p">)</span>
<span class="n">current_indent</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">elif</span> <span class="s1">&#39;:&#39;</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
<span class="c1"># Пара ключ:значение</span>
<span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">key</span> <span class="o">=</span> <span class="n">key</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="c1"># Добавляем кавычки к ключу если их нет (включая $)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="n">key</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)):</span>
<span class="n">key</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;&quot;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">&quot;&#39;</span>
<span class="c1"># Обработка значений</span>
<span class="k">if</span> <span class="n">value</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">]:</span>
<span class="c1"># Значение - начало объекта или массива</span>
<span class="n">formatted_line</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&#39;</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">formatted_line</span><span class="p">)</span>
<span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="n">current_indent</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">elif</span> <span class="n">value</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">]:</span>
<span class="c1"># Не должно происходить, но на всякий случай</span>
<span class="n">current_indent</span> <span class="o">-=</span> <span class="mi">1</span>
<span class="n">formatted_line</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&#39;</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">formatted_line</span><span class="p">)</span>
<span class="k">if</span> <span class="n">stack</span><span class="p">:</span>
<span class="n">stack</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Простое значение</span>
<span class="c1"># Добавляем кавычки к строковым значениям если их нет</span>
<span class="k">if</span> <span class="p">(</span><span class="n">value</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span> <span class="c1"># Для чисел с точкой</span>
<span class="k">if</span> <span class="p">(</span><span class="n">value</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> <span class="ow">and</span>
<span class="n">value</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;true&#39;</span><span class="p">,</span> <span class="s1">&#39;false&#39;</span><span class="p">,</span> <span class="s1">&#39;null&#39;</span><span class="p">]</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;&quot;&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;{&#39;</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;[&#39;</span><span class="p">)):</span>
@ -3266,41 +3245,29 @@
<span class="n">formatted_line</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">key</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s1">&#39;</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">formatted_line</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Простая строка (скорее всего значение в массиве)</span>
<span class="n">formatted_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39; &#39;</span> <span class="o">*</span> <span class="n">current_indent</span> <span class="o">+</span> <span class="n">line</span><span class="p">)</span>
<span class="c1"># Добавляем запятые где необходимо</span>
<span class="n">result</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">total_lines</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">current_line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">):</span>
<span class="c1"># Проверяем, нужно ли добавить запятую</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">formatted_lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">total_lines</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">next_line</span> <span class="o">=</span> <span class="n">formatted_lines</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
<span class="c1"># Определяем, находимся ли мы внутри массива</span>
<span class="n">in_array</span> <span class="o">=</span> <span class="nb">any</span><span class="p">(</span><span class="n">bracket</span> <span class="o">==</span> <span class="s1">&#39;[&#39;</span> <span class="k">for</span> <span class="n">bracket</span> <span class="ow">in</span> <span class="n">stack</span><span class="p">)</span>
<span class="c1"># Не добавляем запятую если:</span>
<span class="c1"># - текущая строка это { или [</span>
<span class="c1"># - следующая строка это } или ]</span>
<span class="c1"># - текущая строка уже заканчивается запятой</span>
<span class="c1"># - следующая строка начинается с } или ] (для элементов массива)</span>
<span class="n">should_add_comma</span> <span class="o">=</span> <span class="p">(</span>
<span class="ow">not</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;{&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;[&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;]&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;]&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="p">(</span><span class="n">in_array</span> <span class="ow">and</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;]&#39;</span><span class="p">)</span> <span class="c1"># Не добавлять запятую перед закрытием массива</span>
<span class="p">)</span>
<span class="c1"># Упрощенная проверка условий для запятой</span>
<span class="n">no_comma_condition1</span> <span class="o">=</span> <span class="n">current_line</span><span class="o">.</span><span class="n">endswith</span><span class="p">((</span><span class="s1">&#39;{&#39;</span><span class="p">,</span> <span class="s1">&#39;[&#39;</span><span class="p">,</span> <span class="s1">&#39;,&#39;</span><span class="p">))</span>
<span class="n">no_comma_condition2</span> <span class="o">=</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">endswith</span><span class="p">((</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">))</span>
<span class="n">no_comma_condition3</span> <span class="o">=</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">((</span><span class="s1">&#39;}&#39;</span><span class="p">,</span> <span class="s1">&#39;]&#39;</span><span class="p">))</span>
<span class="n">no_comma_condition4</span> <span class="o">=</span> <span class="n">in_array</span> <span class="ow">and</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;]&#39;</span>
<span class="c1"># Для элементов массива (объектов) добавляем запятую после }</span>
<span class="k">if</span> <span class="p">(</span><span class="n">in_array</span> <span class="ow">and</span>
<span class="n">current_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;}&#39;</span> <span class="ow">and</span>
<span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;]&#39;</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)):</span>
<span class="n">should_add_comma</span> <span class="o">=</span> <span class="ow">not</span> <span class="p">(</span><span class="n">no_comma_condition1</span> <span class="ow">or</span> <span class="n">no_comma_condition2</span> <span class="ow">or</span>
<span class="n">no_comma_condition3</span> <span class="ow">or</span> <span class="n">no_comma_condition4</span><span class="p">)</span>
<span class="c1"># Специальный случай для элементов массива</span>
<span class="k">if</span> <span class="p">(</span><span class="n">in_array</span> <span class="ow">and</span> <span class="n">current_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;}&#39;</span> <span class="ow">and</span>
<span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;]&#39;</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">next_line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;}&#39;</span><span class="p">)):</span>
<span class="n">should_add_comma</span> <span class="o">=</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">should_add_comma</span><span class="p">:</span>
@ -3408,44 +3375,33 @@
<details class="quote">
<summary>Source code in <code>components\json_container_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span>
<span class="normal">161</span>
<span class="normal">162</span>
<span class="normal">163</span>
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span>
<span class="normal">167</span>
<span class="normal">168</span>
<span class="normal">169</span>
<span class="normal">170</span>
<span class="normal">171</span>
<span class="normal">172</span>
<span class="normal">173</span>
<span class="normal">174</span>
<span class="normal">175</span>
<span class="normal">176</span>
<span class="normal">177</span>
<span class="normal">178</span>
<span class="normal">179</span>
<span class="normal">180</span>
<span class="normal">181</span>
<span class="normal">182</span>
<span class="normal">183</span>
<span class="normal">184</span>
<span class="normal">185</span>
<span class="normal">186</span>
<span class="normal">187</span>
<span class="normal">188</span>
<span class="normal">189</span>
<span class="normal">190</span>
<span class="normal">191</span>
<span class="normal">192</span>
<span class="normal">193</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">read_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dict</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span>
<span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span>
<span class="normal">152</span>
<span class="normal">153</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">read_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dict</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Читает и форматирует JSON-данные из указанного локатора.</span>
<span class="sd"> Args:</span>
@ -3457,29 +3413,18 @@
<span class="sd"> Raises:</span>
<span class="sd"> json.JSONDecodeError: Если данные не могут быть преобразованы в JSON.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># Чтение JSON-содержимого из рабочей области</span>
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
<span class="n">json_string</span> <span class="o">=</span> <span class="n">loc</span><span class="o">.</span><span class="n">inner_text</span><span class="p">()</span>
<span class="c1"># Сохранение исходной JSON строки в файл</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;json_string.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">json_string</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Исходная JSON строка сохранена в файл: json_string.txt&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">json_string</span><span class="p">)</span>
<span class="n">formatted_json_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_json_string</span><span class="p">(</span><span class="n">json_string</span><span class="p">)</span>
<span class="c1"># Сохранение отформатированной JSON строки в файл</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;formatted_json_string.txt&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">formatted_json_string</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Отформатированная JSON строка сохранена в файл: formatted_json_string.txt&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">formatted_json_string</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">formatted_json_string</span><span class="p">)</span>
<span class="k">except</span> <span class="n">json</span><span class="o">.</span><span class="n">JSONDecodeError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="c1"># Дополнительная отладка</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;JSON decode error: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Formatted JSON: </span><span class="si">{</span><span class="n">formatted_json_string</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;JSON decode error: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;Formatted JSON: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">formatted_json_string</span><span class="p">)</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Invalid json content. Error: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="k">return</span> <span class="n">data</span>

View File

@ -753,6 +753,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -1126,6 +1147,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1771,6 +1813,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1980,6 +2043,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -2037,6 +2121,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2642,7 +2747,7 @@
<p>Компонент модального окна. Предоставляет методы для взаимодействия с окном,
его содержимым и проверок.</p>
его содержимым и проверками.</p>
@ -2745,25 +2850,9 @@
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span>
<span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span>
<span class="normal">117</span>
<span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ModalWindowComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="normal">107</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ModalWindowComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Компонент модального окна. Предоставляет методы для взаимодействия с окном,</span>
<span class="sd"> его содержимым и проверок.&quot;&quot;&quot;</span>
<span class="sd"> его содержимым и проверками.&quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
@ -2774,32 +2863,26 @@
<span class="c1"># Действия:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">add_content_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">item</span><span class="p">:</span> <span class="nb">object</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет элемент содержимого в окно по заданному имени.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">content_items</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">item</span>
<span class="k">def</span><span class="w"> </span><span class="nf">get_content_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">object</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает элемент содержимого по имени или None, если не найден.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">content_items</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">add_toolbar_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет заголовок в панель инструментов модального окна.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">add_title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">add_toolbar_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет кнопку в панель инструментов модального окна.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">add_tooltip_button</span><span class="p">(</span><span class="n">locator</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">add_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет кнопку в модальное окно.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">name</span><span class="p">))</span>
<span class="k">def</span><span class="w"> </span><span class="nf">get_button_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Button</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Ищет и возвращает кнопку по имени или None, если не найдена.&quot;&quot;&quot;</span>
<span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="p">:</span>
<span class="k">if</span> <span class="n">button</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span>
<span class="k">return</span> <span class="n">button</span>
@ -2807,7 +2890,6 @@
<span class="k">def</span><span class="w"> </span><span class="nf">click_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Кликает по кнопке с заданным именем. Вызывает ошибку, если не найдена.&quot;&quot;&quot;</span>
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Button with name &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; not found&quot;</span>
@ -2815,48 +2897,41 @@
<span class="k">def</span><span class="w"> </span><span class="nf">click_toolbar_close_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Кликает по кнопке закрытия в панели инструментов.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">click_button</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна вниз.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна вверх.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна влево.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_left</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна вправо.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_right</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
<span class="c1"># Проверки:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_window_vertical_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность вертикальной прокрутки окна.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_scrollable_vertically</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_window_horizontal_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность горизонтальной прокрутки окна.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_scrollable_horizontally</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_by_window_title</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие окна по заголовку.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_toolbar_presence</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Modal window with &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">title</span><span class="si">}</span><span class="s2">&#39; is missing&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_toolbar_presence</span><span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Modal window with &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">title</span><span class="si">}</span><span class="s2">&#39; is missing&quot;</span>
<span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_button_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки по имени. Вызывает ошибку, если не найдена.&quot;&quot;&quot;</span>
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Button with name &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; not found&quot;</span>
@ -2864,12 +2939,10 @@
<span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_button_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки в панели инструментов.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_button_visibility</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_button_tooltip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">tooltip</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет подсказку у кнопки в панели инструментов.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_button_tooltip</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">tooltip</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -2902,12 +2975,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет кнопку в модальное окно.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">locator</span><span class="p">,</span> <span class="n">name</span><span class="p">))</span>
</code></pre></div></td></tr></table></div>
</details>
@ -2933,10 +3004,8 @@
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_content_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">item</span><span class="p">:</span> <span class="nb">object</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">27</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_content_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">item</span><span class="p">:</span> <span class="nb">object</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет элемент содержимого в окно по заданному имени.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">content_items</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">item</span>
</code></pre></div></td></tr></table></div>
</details>
@ -2960,12 +3029,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_toolbar_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_toolbar_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет кнопку в панель инструментов модального окна.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">add_tooltip_button</span><span class="p">(</span><span class="n">locator</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -2989,12 +3056,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_toolbar_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">add_toolbar_title</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">title</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет заголовок в панель инструментов модального окна.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">add_title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3018,15 +3083,13 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_button_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">94</span>
<span class="normal">95</span>
<span class="normal">96</span>
<span class="normal">97</span>
<span class="normal">98</span>
<span class="normal">99</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_button_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки по имени. Вызывает ошибку, если не найдена.&quot;&quot;&quot;</span>
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Button with name &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; not found&quot;</span>
@ -3053,13 +3116,15 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">102</span>
<span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_by_window_title</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_by_window_title</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие окна по заголовку.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_toolbar_presence</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Modal window with &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">title</span><span class="si">}</span><span class="s2">&#39; is missing&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_toolbar_presence</span><span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Modal window with &#39;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">title</span><span class="si">}</span><span class="s2">&#39; is missing&quot;</span>
<span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -3082,12 +3147,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_button_tooltip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">tooltip</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">105</span>
<span class="normal">106</span>
<span class="normal">107</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_button_tooltip</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">tooltip</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет подсказку у кнопки в панели инструментов.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_button_tooltip</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">tooltip</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3111,12 +3174,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">115</span>
<span class="normal">116</span>
<span class="normal">117</span>
<span class="normal">118</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_button_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">101</span>
<span class="normal">102</span>
<span class="normal">103</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_toolbar_button_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки в панели инструментов.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">check_button_visibility</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3140,12 +3201,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_window_horizontal_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_window_horizontal_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность горизонтальной прокрутки окна.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_scrollable_horizontally</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3169,12 +3228,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">92</span>
<span class="normal">93</span>
<span class="normal">94</span>
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_window_vertical_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">80</span>
<span class="normal">81</span>
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_window_vertical_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность вертикальной прокрутки окна.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_scrollable_vertically</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3198,15 +3255,13 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">58</span>
<span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span>
<span class="normal">62</span>
<span class="normal">63</span>
<span class="normal">64</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Кликает по кнопке с заданным именем. Вызывает ошибку, если не найдена.&quot;&quot;&quot;</span>
<span class="n">button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">button</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Button with name &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; not found&quot;</span>
@ -3233,12 +3288,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">66</span>
<span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_toolbar_close_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_toolbar_close_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Кликает по кнопке закрытия в панели инструментов.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">toolbar</span><span class="o">.</span><span class="n">click_button</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3262,15 +3315,13 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_button_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Button</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_button_by_name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Button</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Ищет и возвращает кнопку по имени или None, если не найдена.&quot;&quot;&quot;</span>
<span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span><span class="p">:</span>
<span class="k">if</span> <span class="n">button</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">name</span><span class="p">:</span>
<span class="k">return</span> <span class="n">button</span>
@ -3297,12 +3348,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_content_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">object</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_content_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">object</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает элемент содержимого по имени или None, если не найден.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">content_items</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3326,12 +3375,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">63</span>
<span class="normal">64</span>
<span class="normal">65</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна вниз.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3355,12 +3402,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_left</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна влево.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_left</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3384,12 +3429,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_right</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна вправо.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_right</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3413,12 +3456,10 @@
<details class="quote">
<summary>Source code in <code>components\modal_window_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_window_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает содержимое окна вверх.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>

View File

@ -753,6 +753,27 @@
<li class="md-nav__item">
<a href="../events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../json_container_component/" class="md-nav__link">
@ -1018,6 +1039,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1663,6 +1705,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1872,6 +1935,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1929,6 +2013,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2633,7 +2738,13 @@
<span class="normal">207</span>
<span class="normal">208</span>
<span class="normal">209</span>
<span class="normal">210</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">NavigationPanelComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="normal">210</span>
<span class="normal">211</span>
<span class="normal">212</span>
<span class="normal">213</span>
<span class="normal">214</span>
<span class="normal">215</span>
<span class="normal">216</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">NavigationPanelComponent</span><span class="p">(</span><span class="n">BaseComponent</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Компонент панели навигации. Предоставляет методы для взаимодействия с ней.&quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
@ -2671,7 +2782,7 @@
<span class="n">loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">locator</span><span class="p">)</span>
<span class="n">loc</span><span class="o">.</span><span class="n">get_by_text</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_root_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_root_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">parent</span><span class="p">:</span> <span class="kc">None</span><span class="o">|</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Кликает по вложенному элементу с указанным текстом.</span>
<span class="sd"> Args:</span>
@ -2679,18 +2790,19 @@
<span class="sd"> item_name: Текст элемента для клика.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="nf">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">parent</span><span class="p">:</span> <span class="kc">None</span><span class="o">|</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="c1"># Находим все локаторы корневых узлов на текущем уровне</span>
<span class="n">root_node</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s1">&#39;&gt;div.v-treeview-node&#39;</span><span class="p">)</span>
<span class="c1"># Получаем список текстов</span>
<span class="n">root_node_texts</span> <span class="o">=</span> <span class="n">root_node</span><span class="o">.</span><span class="n">all_inner_texts</span><span class="p">()</span>
<span class="c1"># Если искомый элемент находится на данном уровне, вычисляем локатор и делаем клик</span>
<span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">node_text</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">root_node_texts</span><span class="p">):</span>
<span class="n">node_text</span> <span class="o">=</span> <span class="n">node_text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;expand_more</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">item_name</span> <span class="o">==</span> <span class="n">node_text</span><span class="p">:</span>
<span class="n">root_node</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">index</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">parent</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">node_text</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">root_node_texts</span><span class="p">):</span>
<span class="n">node_text</span> <span class="o">=</span> <span class="n">node_text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;expand_more</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">item_name</span> <span class="o">==</span> <span class="n">node_text</span><span class="p">:</span>
<span class="n">root_node</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">index</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="c1"># Если элемента нет, рекурсивно ищем дальше</span>
<span class="n">nodes_count</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s1">&#39;&gt;div.v-treeview-node&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span>
@ -2729,9 +2841,14 @@
<span class="c1"># Ищем дочерние элементы *внутри* текущего узла</span>
<span class="k">if</span> <span class="n">has_children</span> <span class="ow">and</span> <span class="n">is_expanded</span><span class="p">:</span>
<span class="n">child_nodes_locator</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&gt;div:nth-child(</span><span class="si">{</span><span class="n">index</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">)&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s1">&#39;&gt;div.v-treeview-node__children&#39;</span><span class="p">)</span>
<span class="n">is_found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">child_nodes_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
<span class="n">is_found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">child_nodes_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_found</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">parent</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">root_texts</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&gt;div:nth-child(</span><span class="si">{</span><span class="n">index</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">)&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">inner_text</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
<span class="k">if</span> <span class="n">parent</span> <span class="ow">in</span> <span class="n">root_texts</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="c1"># закрываем узел, если в нем ничего не нашли</span>
<span class="k">if</span> <span class="n">is_expanded</span><span class="p">:</span>
@ -2742,7 +2859,7 @@
<span class="k">return</span> <span class="kc">False</span>
<span class="n">root_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">node_root_locator</span><span class="p">)</span>
<span class="n">found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
<span class="n">found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
<span class="k">assert</span> <span class="n">found</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Navigation panel item </span><span class="si">{</span><span class="n">item_name</span><span class="si">}</span><span class="s2"> is missing&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="nf">traverse_panel_tree</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_root_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">debug</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
@ -2984,13 +3101,7 @@
<details class="quote">
<summary>Source code in <code>components\navbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">187</span>
<span class="normal">188</span>
<span class="normal">189</span>
<span class="normal">190</span>
<span class="normal">191</span>
<span class="normal">192</span>
<span class="normal">193</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">193</span>
<span class="normal">194</span>
<span class="normal">195</span>
<span class="normal">196</span>
@ -3007,7 +3118,13 @@
<span class="normal">207</span>
<span class="normal">208</span>
<span class="normal">209</span>
<span class="normal">210</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">210</span>
<span class="normal">211</span>
<span class="normal">212</span>
<span class="normal">213</span>
<span class="normal">214</span>
<span class="normal">215</span>
<span class="normal">216</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет видимость элемента с указанным текстом.</span>
<span class="sd"> Args:</span>
@ -3129,7 +3246,7 @@
<h3 id="components.navbar_component.NavigationPanelComponent.click_sub_item" class="doc doc-heading">
<code class="highlight language-python"><span class="n">click_sub_item</span><span class="p">(</span><span class="n">node_root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span></code>
<code class="highlight language-python"><span class="n">click_sub_item</span><span class="p">(</span><span class="n">node_root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span></code>
</h3>
@ -3260,7 +3377,13 @@
<span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_root_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_sub_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_root_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">parent</span><span class="p">:</span> <span class="kc">None</span><span class="o">|</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Кликает по вложенному элементу с указанным текстом.</span>
<span class="sd"> Args:</span>
@ -3268,18 +3391,19 @@
<span class="sd"> item_name: Текст элемента для клика.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span><span class="w"> </span><span class="nf">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">parent</span><span class="p">:</span> <span class="kc">None</span><span class="o">|</span><span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="c1"># Находим все локаторы корневых узлов на текущем уровне</span>
<span class="n">root_node</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s1">&#39;&gt;div.v-treeview-node&#39;</span><span class="p">)</span>
<span class="c1"># Получаем список текстов</span>
<span class="n">root_node_texts</span> <span class="o">=</span> <span class="n">root_node</span><span class="o">.</span><span class="n">all_inner_texts</span><span class="p">()</span>
<span class="c1"># Если искомый элемент находится на данном уровне, вычисляем локатор и делаем клик</span>
<span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">node_text</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">root_node_texts</span><span class="p">):</span>
<span class="n">node_text</span> <span class="o">=</span> <span class="n">node_text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;expand_more</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">item_name</span> <span class="o">==</span> <span class="n">node_text</span><span class="p">:</span>
<span class="n">root_node</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">index</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">parent</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">node_text</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">root_node_texts</span><span class="p">):</span>
<span class="n">node_text</span> <span class="o">=</span> <span class="n">node_text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;expand_more</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">item_name</span> <span class="o">==</span> <span class="n">node_text</span><span class="p">:</span>
<span class="n">root_node</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">index</span><span class="p">)</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="c1"># Если элемента нет, рекурсивно ищем дальше</span>
<span class="n">nodes_count</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s1">&#39;&gt;div.v-treeview-node&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span>
@ -3318,9 +3442,14 @@
<span class="c1"># Ищем дочерние элементы *внутри* текущего узла</span>
<span class="k">if</span> <span class="n">has_children</span> <span class="ow">and</span> <span class="n">is_expanded</span><span class="p">:</span>
<span class="n">child_nodes_locator</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&gt;div:nth-child(</span><span class="si">{</span><span class="n">index</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">)&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="s1">&#39;&gt;div.v-treeview-node__children&#39;</span><span class="p">)</span>
<span class="n">is_found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">child_nodes_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
<span class="n">is_found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="n">page</span><span class="p">,</span> <span class="n">child_nodes_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_found</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">parent</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">root_texts</span> <span class="o">=</span> <span class="n">root_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;&gt;div:nth-child(</span><span class="si">{</span><span class="n">index</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">)&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">inner_text</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
<span class="k">if</span> <span class="n">parent</span> <span class="ow">in</span> <span class="n">root_texts</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="c1"># закрываем узел, если в нем ничего не нашли</span>
<span class="k">if</span> <span class="n">is_expanded</span><span class="p">:</span>
@ -3331,7 +3460,7 @@
<span class="k">return</span> <span class="kc">False</span>
<span class="n">root_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">node_root_locator</span><span class="p">)</span>
<span class="n">found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
<span class="n">found</span> <span class="o">=</span> <span class="n">find_and_click_item</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="p">,</span> <span class="n">root_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
<span class="k">assert</span> <span class="n">found</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;Navigation panel item </span><span class="si">{</span><span class="n">item_name</span><span class="si">}</span><span class="s2"> is missing&quot;</span>
</code></pre></div></td></tr></table></div>
</details>
@ -3485,13 +3614,7 @@
<details class="quote">
<summary>Source code in <code>components\navbar_component.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
@ -3546,7 +3669,13 @@
<span class="normal">181</span>
<span class="normal">182</span>
<span class="normal">183</span>
<span class="normal">184</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">traverse_panel_tree</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_root_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">debug</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="normal">184</span>
<span class="normal">185</span>
<span class="normal">186</span>
<span class="normal">187</span>
<span class="normal">188</span>
<span class="normal">189</span>
<span class="normal">190</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">traverse_panel_tree</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_root_locator</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Locator</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">debug</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Рекурсивно обходит дерево v-treeview и выводит информацию об элементах в режиме отладки (debug=True).</span>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
<link rel="prev" href="../../components/toolbar_component/">
<link rel="prev" href="../container_system_log_events/">
<link rel="next" href="../modal_add_AD_user/">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
@ -1690,6 +1732,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1899,6 +1962,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1956,6 +2040,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -900,6 +921,27 @@
<li class="md-nav__item">
<a href="../container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dialog_user_settings/" class="md-nav__link">
@ -1681,6 +1723,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1890,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1947,6 +2031,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -900,6 +921,27 @@
<li class="md-nav__item">
<a href="../container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dialog_user_settings/" class="md-nav__link">
@ -1672,6 +1714,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1881,6 +1944,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1938,6 +2022,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -900,6 +921,27 @@
<li class="md-nav__item">
<a href="../container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dialog_user_settings/" class="md-nav__link">
@ -1690,6 +1732,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1899,6 +1962,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1956,6 +2040,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -900,6 +921,27 @@
<li class="md-nav__item">
<a href="../container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dialog_user_settings/" class="md-nav__link">
@ -1672,6 +1714,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1881,6 +1944,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1938,6 +2022,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -900,6 +921,27 @@
<li class="md-nav__item">
<a href="../container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dialog_user_settings/" class="md-nav__link">
@ -1095,6 +1137,24 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components_derived.modal_view_template.ViewTemplateModalWindow.compare_modal_with_api_data" class="md-nav__link">
<span class="md-ellipsis">
compare_modal_with_api_data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components_derived.modal_view_template.ViewTemplateModalWindow.get_modal_window_data" class="md-nav__link">
<span class="md-ellipsis">
get_modal_window_data
</span>
</a>
</li>
</ul>
@ -1636,6 +1696,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1845,6 +1926,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1902,6 +2004,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2303,6 +2426,24 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components_derived.modal_view_template.ViewTemplateModalWindow.compare_modal_with_api_data" class="md-nav__link">
<span class="md-ellipsis">
compare_modal_with_api_data
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#components_derived.modal_view_template.ViewTemplateModalWindow.get_modal_window_data" class="md-nav__link">
<span class="md-ellipsis">
get_modal_window_data
</span>
</a>
</li>
</ul>
@ -2387,64 +2528,150 @@
<details class="quote">
<summary>Source code in <code>components_derived\modal_view_template.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span>
<span class="normal">19</span>
<span class="normal">20</span>
<span class="normal">21</span>
<span class="normal">22</span>
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span>
<span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span>
<span class="normal">62</span>
<span class="normal">63</span>
<span class="normal">64</span>
<span class="normal">65</span>
<span class="normal">66</span>
<span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span>
<span class="normal">70</span>
<span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ViewTemplateModalWindow</span><span class="p">(</span><span class="n">ModalWindowComponent</span><span class="p">):</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 17</span>
<span class="normal"> 18</span>
<span class="normal"> 19</span>
<span class="normal"> 20</span>
<span class="normal"> 21</span>
<span class="normal"> 22</span>
<span class="normal"> 23</span>
<span class="normal"> 24</span>
<span class="normal"> 25</span>
<span class="normal"> 26</span>
<span class="normal"> 27</span>
<span class="normal"> 28</span>
<span class="normal"> 29</span>
<span class="normal"> 30</span>
<span class="normal"> 31</span>
<span class="normal"> 32</span>
<span class="normal"> 33</span>
<span class="normal"> 34</span>
<span class="normal"> 35</span>
<span class="normal"> 36</span>
<span class="normal"> 37</span>
<span class="normal"> 38</span>
<span class="normal"> 39</span>
<span class="normal"> 40</span>
<span class="normal"> 41</span>
<span class="normal"> 42</span>
<span class="normal"> 43</span>
<span class="normal"> 44</span>
<span class="normal"> 45</span>
<span class="normal"> 46</span>
<span class="normal"> 47</span>
<span class="normal"> 48</span>
<span class="normal"> 49</span>
<span class="normal"> 50</span>
<span class="normal"> 51</span>
<span class="normal"> 52</span>
<span class="normal"> 53</span>
<span class="normal"> 54</span>
<span class="normal"> 55</span>
<span class="normal"> 56</span>
<span class="normal"> 57</span>
<span class="normal"> 58</span>
<span class="normal"> 59</span>
<span class="normal"> 60</span>
<span class="normal"> 61</span>
<span class="normal"> 62</span>
<span class="normal"> 63</span>
<span class="normal"> 64</span>
<span class="normal"> 65</span>
<span class="normal"> 66</span>
<span class="normal"> 67</span>
<span class="normal"> 68</span>
<span class="normal"> 69</span>
<span class="normal"> 70</span>
<span class="normal"> 71</span>
<span class="normal"> 72</span>
<span class="normal"> 73</span>
<span class="normal"> 74</span>
<span class="normal"> 75</span>
<span class="normal"> 76</span>
<span class="normal"> 77</span>
<span class="normal"> 78</span>
<span class="normal"> 79</span>
<span class="normal"> 80</span>
<span class="normal"> 81</span>
<span class="normal"> 82</span>
<span class="normal"> 83</span>
<span class="normal"> 84</span>
<span class="normal"> 85</span>
<span class="normal"> 86</span>
<span class="normal"> 87</span>
<span class="normal"> 88</span>
<span class="normal"> 89</span>
<span class="normal"> 90</span>
<span class="normal"> 91</span>
<span class="normal"> 92</span>
<span class="normal"> 93</span>
<span class="normal"> 94</span>
<span class="normal"> 95</span>
<span class="normal"> 96</span>
<span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span>
<span class="normal">102</span>
<span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span>
<span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span>
<span class="normal">117</span>
<span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span>
<span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span>
<span class="normal">152</span>
<span class="normal">153</span>
<span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ViewTemplateModalWindow</span><span class="p">(</span><span class="n">ModalWindowComponent</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Модальное окно шаблона.</span>
<span class="sd"> Наследует ModalWindowComponent и добавляет функционал для:</span>
@ -2456,7 +2683,6 @@
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">template_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Инициализирует элементы формы модального окна шаблона.&quot;&quot;&quot;</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
<span class="c1"># Настройка заголовка и кнопки закрытия</span>
@ -2470,7 +2696,6 @@
<span class="k">def</span><span class="w"> </span><span class="nf">close_window</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Закрывает окно через кнопку &#39;Закрыть&#39;.&quot;&quot;&quot;</span>
<span class="n">close_button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">)</span>
<span class="n">close_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
@ -2482,26 +2707,114 @@
<span class="sd"> 2. Видимость кнопки закрытия</span>
<span class="sd"> 3. Подсказку кнопки закрытия</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_by_window_title</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_toolbar_button_visibility</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_toolbar_button_tooltip</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">,</span> <span class="s2">&quot;Закрыть&quot;</span><span class="p">)</span>
<span class="c1"># Разрабатывается =========================================================</span>
<span class="k">def</span><span class="w"> </span><span class="nf">_get_config_data</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Получает конфигурационные данные из модального окна.</span>
<span class="k">def</span><span class="w"> </span><span class="nf">get_modal_window_data</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Извлекает данные из модального окна шаблона и структурирует по кодам и значениям.</span>
<span class="sd"> Returns:</span>
<span class="sd"> dict: Словарь с конфигурационными данными или пустой словарь</span>
<span class="sd"> dict: Данные в формате {&#39;код&#39;: &#39;значение&#39;} как в API</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">config_data</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">modal_data</span> <span class="o">=</span> <span class="p">{}</span>
<span class="c1"># Ищем контейнер с конфигурационными данными</span>
<span class="n">config_container</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span>
<span class="s2">&quot;//*[@id=&#39;app&#39;]/div[2]/div/div/div/div/div/div/div/div/div[2]/div/div/div&quot;</span>
<span class="p">)</span>
<span class="c1"># Получаем все значения из input полей</span>
<span class="n">input_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW_TEXT_FIELD_INPUT</span><span class="p">)</span>
<span class="k">return</span> <span class="n">config_data</span>
<span class="c1"># Проверка наличия элементов</span>
<span class="n">input_count</span> <span class="o">=</span> <span class="n">input_locator</span><span class="o">.</span><span class="n">count</span><span class="p">()</span>
<span class="k">if</span> <span class="n">input_count</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Поля ввода не найдены в модальном окне&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">modal_data</span>
<span class="n">all_values</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1"># Обрабатываем каждое поле с обработкой возможных ошибок</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">input_count</span><span class="p">):</span>
<span class="n">input_field</span> <span class="o">=</span> <span class="n">input_locator</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="c1"># Проверяем, что элемент видим и доступен</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">input_field</span><span class="o">.</span><span class="n">is_visible</span><span class="p">():</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Поле </span><span class="si">%s</span><span class="s2"> не видимо, пропускаем&quot;</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<span class="k">continue</span>
<span class="c1"># Получаем значение с обработкой возможных ошибок состояния элемента</span>
<span class="k">if</span> <span class="n">input_field</span><span class="o">.</span><span class="n">is_visible</span><span class="p">():</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">input_field</span><span class="o">.</span><span class="n">input_value</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="k">if</span> <span class="n">value</span><span class="p">:</span> <span class="c1"># Игнорируем пустые значения</span>
<span class="n">all_values</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Поле </span><span class="si">%s</span><span class="s2"> стало невидимым после проверки, пропускаем&quot;</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Все значения из полей: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">all_values</span><span class="p">)</span>
<span class="c1"># Анализируем пары код-значение</span>
<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">while</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">all_values</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">current_value</span> <span class="o">=</span> <span class="n">all_values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="n">next_value</span> <span class="o">=</span> <span class="n">all_values</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
<span class="c1"># Определяем, является ли текущее значение кодом (число)</span>
<span class="k">if</span> <span class="n">current_value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
<span class="c1"># Текущее значение - код, следующее - значение</span>
<span class="n">modal_data</span><span class="p">[</span><span class="n">current_value</span><span class="p">]</span> <span class="o">=</span> <span class="n">next_value</span>
<span class="n">i</span> <span class="o">+=</span> <span class="mi">2</span> <span class="c1"># Перескакиваем через пару</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Если текущее значение не число, ищем следующую пару</span>
<span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="c1"># Добавляем имя шаблона с ключом &#39;Шаблон&#39; вместо &#39;template&#39;</span>
<span class="k">if</span> <span class="n">all_values</span><span class="p">:</span>
<span class="n">modal_data</span><span class="p">[</span><span class="s1">&#39;Шаблон&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">all_values</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Структурированные данные из модального окна: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">modal_data</span><span class="p">)</span>
<span class="k">return</span> <span class="n">modal_data</span>
<span class="k">def</span><span class="w"> </span><span class="nf">compare_modal_with_api_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">modal_data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="n">api_data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
<span class="n">template_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Сравнивает данные из модального окна с данными из API.&quot;&quot;&quot;</span>
<span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1"># Создаем копию API данных с заменой &#39;template&#39; на &#39;Шаблон&#39;</span>
<span class="n">api_data_adapted</span> <span class="o">=</span> <span class="n">api_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="k">if</span> <span class="s1">&#39;template&#39;</span> <span class="ow">in</span> <span class="n">api_data_adapted</span><span class="p">:</span>
<span class="n">api_data_adapted</span><span class="p">[</span><span class="s1">&#39;Шаблон&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">api_data_adapted</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s1">&#39;template&#39;</span><span class="p">)</span>
<span class="c1"># Сравниваем все поля</span>
<span class="k">for</span> <span class="n">code</span><span class="p">,</span> <span class="n">expected_value</span> <span class="ow">in</span> <span class="n">api_data_adapted</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="k">if</span> <span class="n">code</span> <span class="ow">in</span> <span class="n">modal_data</span><span class="p">:</span>
<span class="n">actual_value</span> <span class="o">=</span> <span class="n">modal_data</span><span class="p">[</span><span class="n">code</span><span class="p">]</span>
<span class="k">if</span> <span class="n">actual_value</span> <span class="o">!=</span> <span class="n">expected_value</span><span class="p">:</span>
<span class="n">error_msg</span> <span class="o">=</span> <span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Расхождение для кода </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2">: &quot;</span>
<span class="sa">f</span><span class="s2">&quot;модальное окно=&#39;</span><span class="si">{</span><span class="n">actual_value</span><span class="si">}</span><span class="s2">&#39;, API=&#39;</span><span class="si">{</span><span class="n">expected_value</span><span class="si">}</span><span class="s2">&#39;&quot;</span>
<span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">error_msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Код </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2"> не найден в модальном окне&quot;</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="c1"># Дополнительная проверка имени шаблона</span>
<span class="n">modal_template</span> <span class="o">=</span> <span class="n">modal_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Шаблон&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">modal_template</span> <span class="o">!=</span> <span class="n">template_name</span><span class="p">:</span>
<span class="n">error_msg</span> <span class="o">=</span> <span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Расхождение в имени шаблона: &quot;</span>
<span class="sa">f</span><span class="s2">&quot;модальное окно=&#39;</span><span class="si">{</span><span class="n">modal_template</span><span class="si">}</span><span class="s2">&#39;, ожидается=&#39;</span><span class="si">{</span><span class="n">template_name</span><span class="si">}</span><span class="s2">&#39;&quot;</span>
<span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="c1"># Если есть расхождения, выбрасываем ошибку</span>
<span class="k">if</span> <span class="n">errors</span><span class="p">:</span>
<span class="n">error_details</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">errors</span><span class="p">)</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Обнаружены расхождения для шаблона &#39;</span><span class="si">{</span><span class="n">template_name</span><span class="si">}</span><span class="s2">&#39;:</span><span class="se">\n</span><span class="si">{</span><span class="n">error_details</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Данные модального окна соответствуют API для шаблона &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span><span class="p">,</span> <span class="n">template_name</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -2533,8 +2846,7 @@
<details class="quote">
<summary>Source code in <code>components_derived\modal_view_template.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">26</span>
<span class="normal">27</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
@ -2547,7 +2859,6 @@
<span class="normal">37</span>
<span class="normal">38</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">,</span> <span class="n">template_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Инициализирует элементы формы модального окна шаблона.&quot;&quot;&quot;</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">page</span><span class="p">)</span>
<span class="c1"># Настройка заголовка и кнопки закрытия</span>
@ -2584,7 +2895,8 @@
<details class="quote">
<summary>Source code in <code>components_derived\modal_view_template.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">46</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
@ -2593,9 +2905,7 @@
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_content</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">55</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_content</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие и корректность элементов окна.</span>
<span class="sd"> Проверяет:</span>
@ -2603,7 +2913,6 @@
<span class="sd"> 2. Видимость кнопки закрытия</span>
<span class="sd"> 3. Подсказку кнопки закрытия</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_by_window_title</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_toolbar_button_visibility</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_toolbar_button_tooltip</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">,</span> <span class="s2">&quot;Закрыть&quot;</span><span class="p">)</span>
@ -2632,10 +2941,8 @@
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">close_window</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">43</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">close_window</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Закрывает окно через кнопку &#39;Закрыть&#39;.&quot;&quot;&quot;</span>
<span class="n">close_button</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_button_by_name</span><span class="p">(</span><span class="s2">&quot;close&quot;</span><span class="p">)</span>
<span class="n">close_button</span><span class="o">.</span><span class="n">click</span><span class="p">()</span>
</code></pre></div></td></tr></table></div>
@ -2644,6 +2951,277 @@
</div>
<div class="doc doc-object doc-function">
<h3 id="components_derived.modal_view_template.ViewTemplateModalWindow.compare_modal_with_api_data" class="doc doc-heading">
<code class="highlight language-python"><span class="n">compare_modal_with_api_data</span><span class="p">(</span><span class="n">modal_data</span><span class="p">,</span> <span class="n">api_data</span><span class="p">,</span> <span class="n">template_name</span><span class="p">)</span></code>
</h3>
<div class="doc doc-contents ">
<p>Сравнивает данные из модального окна с данными из API.</p>
<details class="quote">
<summary>Source code in <code>components_derived\modal_view_template.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">117</span>
<span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span>
<span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span>
<span class="normal">152</span>
<span class="normal">153</span>
<span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">compare_modal_with_api_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">modal_data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="n">api_data</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
<span class="n">template_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Сравнивает данные из модального окна с данными из API.&quot;&quot;&quot;</span>
<span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1"># Создаем копию API данных с заменой &#39;template&#39; на &#39;Шаблон&#39;</span>
<span class="n">api_data_adapted</span> <span class="o">=</span> <span class="n">api_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="k">if</span> <span class="s1">&#39;template&#39;</span> <span class="ow">in</span> <span class="n">api_data_adapted</span><span class="p">:</span>
<span class="n">api_data_adapted</span><span class="p">[</span><span class="s1">&#39;Шаблон&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">api_data_adapted</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s1">&#39;template&#39;</span><span class="p">)</span>
<span class="c1"># Сравниваем все поля</span>
<span class="k">for</span> <span class="n">code</span><span class="p">,</span> <span class="n">expected_value</span> <span class="ow">in</span> <span class="n">api_data_adapted</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="k">if</span> <span class="n">code</span> <span class="ow">in</span> <span class="n">modal_data</span><span class="p">:</span>
<span class="n">actual_value</span> <span class="o">=</span> <span class="n">modal_data</span><span class="p">[</span><span class="n">code</span><span class="p">]</span>
<span class="k">if</span> <span class="n">actual_value</span> <span class="o">!=</span> <span class="n">expected_value</span><span class="p">:</span>
<span class="n">error_msg</span> <span class="o">=</span> <span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Расхождение для кода </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2">: &quot;</span>
<span class="sa">f</span><span class="s2">&quot;модальное окно=&#39;</span><span class="si">{</span><span class="n">actual_value</span><span class="si">}</span><span class="s2">&#39;, API=&#39;</span><span class="si">{</span><span class="n">expected_value</span><span class="si">}</span><span class="s2">&#39;&quot;</span>
<span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">error_msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;Код </span><span class="si">{</span><span class="n">code</span><span class="si">}</span><span class="s2"> не найден в модальном окне&quot;</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="c1"># Дополнительная проверка имени шаблона</span>
<span class="n">modal_template</span> <span class="o">=</span> <span class="n">modal_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;Шаблон&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">modal_template</span> <span class="o">!=</span> <span class="n">template_name</span><span class="p">:</span>
<span class="n">error_msg</span> <span class="o">=</span> <span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Расхождение в имени шаблона: &quot;</span>
<span class="sa">f</span><span class="s2">&quot;модальное окно=&#39;</span><span class="si">{</span><span class="n">modal_template</span><span class="si">}</span><span class="s2">&#39;, ожидается=&#39;</span><span class="si">{</span><span class="n">template_name</span><span class="si">}</span><span class="s2">&#39;&quot;</span>
<span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error_msg</span><span class="p">)</span>
<span class="c1"># Если есть расхождения, выбрасываем ошибку</span>
<span class="k">if</span> <span class="n">errors</span><span class="p">:</span>
<span class="n">error_details</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">errors</span><span class="p">)</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="p">(</span>
<span class="sa">f</span><span class="s2">&quot;Обнаружены расхождения для шаблона &#39;</span><span class="si">{</span><span class="n">template_name</span><span class="si">}</span><span class="s2">&#39;:</span><span class="se">\n</span><span class="si">{</span><span class="n">error_details</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Данные модального окна соответствуют API для шаблона &#39;</span><span class="si">%s</span><span class="s2">&#39;&quot;</span><span class="p">,</span> <span class="n">template_name</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="components_derived.modal_view_template.ViewTemplateModalWindow.get_modal_window_data" class="doc doc-heading">
<code class="highlight language-python"><span class="n">get_modal_window_data</span><span class="p">()</span></code>
</h3>
<div class="doc doc-contents ">
<p>Извлекает данные из модального окна шаблона и структурирует по кодам и значениям.</p>
<p><span class="doc-section-title">Returns:</span></p>
<table>
<thead>
<tr>
<th>Name</th> <th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr class="doc-section-item">
<td><code>dict</code></td> <td>
<code><span title="dict">dict</span></code>
</td>
<td>
<div class="doc-md-description">
<p>Данные в формате {'код': 'значение'} как в API</p>
</div>
</td>
</tr>
</tbody>
</table>
<details class="quote">
<summary>Source code in <code>components_derived\modal_view_template.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 57</span>
<span class="normal"> 58</span>
<span class="normal"> 59</span>
<span class="normal"> 60</span>
<span class="normal"> 61</span>
<span class="normal"> 62</span>
<span class="normal"> 63</span>
<span class="normal"> 64</span>
<span class="normal"> 65</span>
<span class="normal"> 66</span>
<span class="normal"> 67</span>
<span class="normal"> 68</span>
<span class="normal"> 69</span>
<span class="normal"> 70</span>
<span class="normal"> 71</span>
<span class="normal"> 72</span>
<span class="normal"> 73</span>
<span class="normal"> 74</span>
<span class="normal"> 75</span>
<span class="normal"> 76</span>
<span class="normal"> 77</span>
<span class="normal"> 78</span>
<span class="normal"> 79</span>
<span class="normal"> 80</span>
<span class="normal"> 81</span>
<span class="normal"> 82</span>
<span class="normal"> 83</span>
<span class="normal"> 84</span>
<span class="normal"> 85</span>
<span class="normal"> 86</span>
<span class="normal"> 87</span>
<span class="normal"> 88</span>
<span class="normal"> 89</span>
<span class="normal"> 90</span>
<span class="normal"> 91</span>
<span class="normal"> 92</span>
<span class="normal"> 93</span>
<span class="normal"> 94</span>
<span class="normal"> 95</span>
<span class="normal"> 96</span>
<span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span>
<span class="normal">102</span>
<span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span>
<span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_modal_window_data</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Извлекает данные из модального окна шаблона и структурирует по кодам и значениям.</span>
<span class="sd"> Returns:</span>
<span class="sd"> dict: Данные в формате {&#39;код&#39;: &#39;значение&#39;} как в API</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">modal_data</span> <span class="o">=</span> <span class="p">{}</span>
<span class="c1"># Получаем все значения из input полей</span>
<span class="n">input_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_locator</span><span class="p">(</span><span class="n">ModalWindowLocators</span><span class="o">.</span><span class="n">MODAL_WINDOW_TEXT_FIELD_INPUT</span><span class="p">)</span>
<span class="c1"># Проверка наличия элементов</span>
<span class="n">input_count</span> <span class="o">=</span> <span class="n">input_locator</span><span class="o">.</span><span class="n">count</span><span class="p">()</span>
<span class="k">if</span> <span class="n">input_count</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">&quot;Поля ввода не найдены в модальном окне&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">modal_data</span>
<span class="n">all_values</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c1"># Обрабатываем каждое поле с обработкой возможных ошибок</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">input_count</span><span class="p">):</span>
<span class="n">input_field</span> <span class="o">=</span> <span class="n">input_locator</span><span class="o">.</span><span class="n">nth</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
<span class="c1"># Проверяем, что элемент видим и доступен</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">input_field</span><span class="o">.</span><span class="n">is_visible</span><span class="p">():</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Поле </span><span class="si">%s</span><span class="s2"> не видимо, пропускаем&quot;</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<span class="k">continue</span>
<span class="c1"># Получаем значение с обработкой возможных ошибок состояния элемента</span>
<span class="k">if</span> <span class="n">input_field</span><span class="o">.</span><span class="n">is_visible</span><span class="p">():</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">input_field</span><span class="o">.</span><span class="n">input_value</span><span class="p">()</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="k">if</span> <span class="n">value</span><span class="p">:</span> <span class="c1"># Игнорируем пустые значения</span>
<span class="n">all_values</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Поле </span><span class="si">%s</span><span class="s2"> стало невидимым после проверки, пропускаем&quot;</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Все значения из полей: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">all_values</span><span class="p">)</span>
<span class="c1"># Анализируем пары код-значение</span>
<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">while</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">all_values</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">current_value</span> <span class="o">=</span> <span class="n">all_values</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="n">next_value</span> <span class="o">=</span> <span class="n">all_values</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span>
<span class="c1"># Определяем, является ли текущее значение кодом (число)</span>
<span class="k">if</span> <span class="n">current_value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
<span class="c1"># Текущее значение - код, следующее - значение</span>
<span class="n">modal_data</span><span class="p">[</span><span class="n">current_value</span><span class="p">]</span> <span class="o">=</span> <span class="n">next_value</span>
<span class="n">i</span> <span class="o">+=</span> <span class="mi">2</span> <span class="c1"># Перескакиваем через пару</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Если текущее значение не число, ищем следующую пару</span>
<span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="c1"># Добавляем имя шаблона с ключом &#39;Шаблон&#39; вместо &#39;template&#39;</span>
<span class="k">if</span> <span class="n">all_values</span><span class="p">:</span>
<span class="n">modal_data</span><span class="p">[</span><span class="s1">&#39;Шаблон&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">all_values</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Структурированные данные из модального окна: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">modal_data</span><span class="p">)</span>
<span class="k">return</span> <span class="n">modal_data</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
</div>
</div>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -900,6 +921,27 @@
<li class="md-nav__item">
<a href="../container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dialog_user_settings/" class="md-nav__link">
@ -1654,6 +1696,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1863,6 +1926,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1920,6 +2004,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1752,6 +1815,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1809,6 +1893,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -744,6 +744,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -891,6 +912,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1536,6 +1578,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1745,6 +1808,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1802,6 +1886,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1752,6 +1815,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1809,6 +1893,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -811,6 +811,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -958,6 +979,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -907,6 +907,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -1054,6 +1075,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1699,6 +1741,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1908,6 +1971,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1965,6 +2049,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -802,6 +802,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -949,6 +970,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1594,6 +1636,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1803,6 +1866,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1860,6 +1944,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -907,6 +907,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -1054,6 +1075,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1699,6 +1741,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1908,6 +1971,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1965,6 +2049,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -835,6 +835,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -982,6 +1003,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1627,6 +1669,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1836,6 +1899,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1893,6 +1977,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -853,6 +853,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -1000,6 +1021,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1645,6 +1687,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1854,6 +1917,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1911,6 +1995,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -835,6 +835,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -982,6 +1003,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1627,6 +1669,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1836,6 +1899,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1893,6 +1977,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -826,6 +826,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -973,6 +994,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1618,6 +1660,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1827,6 +1890,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1884,6 +1968,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -826,6 +826,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -973,6 +994,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1618,6 +1660,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1827,6 +1890,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1884,6 +1968,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -871,6 +871,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -1018,6 +1039,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1663,6 +1705,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1872,6 +1935,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1929,6 +2013,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -853,6 +853,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -1000,6 +1021,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1645,6 +1687,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1854,6 +1917,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1911,6 +1995,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -865,6 +865,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -1012,6 +1033,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1657,6 +1699,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1866,6 +1929,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1923,6 +2007,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -1005,6 +1005,27 @@
<li class="md-nav__item">
<a href="components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="components/json_container_component/" class="md-nav__link">
@ -1152,6 +1173,27 @@
<li class="md-nav__item">
<a href="components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="components_derived/dialog_user_settings/" class="md-nav__link">
@ -1797,6 +1839,27 @@
<li class="md-nav__item">
<a href="pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2006,6 +2069,27 @@
<li class="md-nav__item">
<a href="tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="tests/e2e/test_templates_tab/" class="md-nav__link">
@ -2063,6 +2147,27 @@
<li class="md-nav__item">
<a href="tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2313,6 +2418,7 @@ TAB_ACTIONS (str): кнопки Действия.
TAB_EVENTS (str): кнопки События.
TAB_MAINTENANCE (str): кнопки Обслуживания.
TAB_SYSTEM_LOG (str): кнопки Системный журнал.
CONTAINER_SYSTEM_LOG_EVENTS (str): контейнера с событиями Системного журнала.
BUTTONS_EVENT (str): блока кнопок-счетчиков событий.
BUTTONS_SERVICE (str): блока кнопок, содержащего кнопки Поиска и Текущего пользователя.
AREA_EVENTS (str): рабочей области страницы.</p>
@ -2352,7 +2458,11 @@ AREA_EVENTS (str): рабочей области страницы.</p>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">EventPanelLocators</span><span class="p">:</span>
<span class="normal">34</span>
<span class="normal">35</span>
<span class="normal">36</span>
<span class="normal">37</span>
<span class="normal">38</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">EventPanelLocators</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Локаторы элементов панели событий.</span>
<span class="sd"> Содержит XPath локаторы для:</span>
@ -2363,6 +2473,7 @@ AREA_EVENTS (str): рабочей области страницы.</p>
<span class="sd"> TAB_EVENTS (str): кнопки События.</span>
<span class="sd"> TAB_MAINTENANCE (str): кнопки Обслуживания.</span>
<span class="sd"> TAB_SYSTEM_LOG (str): кнопки Системный журнал.</span>
<span class="sd"> CONTAINER_SYSTEM_LOG_EVENTS (str): контейнера с событиями Системного журнала.</span>
<span class="sd"> BUTTONS_EVENT (str): блока кнопок-счетчиков событий.</span>
<span class="sd"> BUTTONS_SERVICE (str): блока кнопок, содержащего кнопки Поиска и Текущего пользователя.</span>
<span class="sd"> AREA_EVENTS (str): рабочей области страницы.</span>
@ -2376,6 +2487,9 @@ AREA_EVENTS (str): рабочей области страницы.</p>
<span class="n">TAB_MAINTENANCE</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">TABS_BLOCK</span><span class="si">}</span><span class="s2">//div[@class=&#39;v-tabs&#39;]//div[@class=&#39;v-tabs__container&#39;]/div[5]&quot;</span>
<span class="n">TAB_SYSTEM_LOG</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">TABS_BLOCK</span><span class="si">}</span><span class="s2">//div[@class=&#39;v-tabs&#39;]//div[@class=&#39;v-tabs__container&#39;]/div[6]&quot;</span>
<span class="n">CONTAINER_SYSTEM_LOG_EVENTS</span> <span class="o">=</span> <span class="s2">&quot;#app &gt; div.application--wrap &gt; div &gt; div:nth-child(3) &gt; div:nth-child(5)&quot;</span>
<span class="n">BUTTONS_EVENT</span> <span class="o">=</span> <span class="s2">&quot;//nav/div[@class=&#39;v-toolbar__content&#39;]/div[@class=&#39;v-toolbar__items&#39;][2]//span[contains(@class, &#39;v-tooltip&#39;)]&quot;</span>
<span class="n">BUTTONS_SERVICE</span> <span class="o">=</span> <span class="s2">&quot;//nav/div[@class=&#39;v-toolbar__content&#39;]/div[@class=&#39;v-toolbar__items&#39;][2]&quot;</span>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2311,7 +2416,9 @@ INPUT_FORM_USER_DATA (str): формы ввода пользовательски
TEXT_FIELD_INPUT_FORM_USER_DATA (str): текстового поля ввода
MENU_INPUT_FORM_USER_DATA (str): меню выбора ролей
LABEL_INPUT_FORM_USER_DATA (str): метки поля ввода
MODAL_WINDOW_SCROLL_CONTAINER (str): контейнера с прокруткой модального окна</p>
MODAL_WINDOW_SCROLL_CONTAINER (str): контейнера с прокруткой модального окна
MODAL_WINDOW_TITLE (str): заголовка тулбара
MODAL_WINDOW_TEXT_FIELD_INPUT (str): текстового поля ввода</p>
@ -2340,7 +2447,10 @@ MODAL_WINDOW_SCROLL_CONTAINER (str): контейнера с прокрутко
<span class="normal">23</span>
<span class="normal">24</span>
<span class="normal">25</span>
<span class="normal">26</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ModalWindowLocators</span><span class="p">:</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
<span class="normal">29</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ModalWindowLocators</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Локаторы для элементов модальных окон.</span>
<span class="sd"> Содержит XPath локаторы для:</span>
@ -2350,11 +2460,14 @@ MODAL_WINDOW_SCROLL_CONTAINER (str): контейнера с прокрутко
<span class="sd"> MENU_INPUT_FORM_USER_DATA (str): меню выбора ролей</span>
<span class="sd"> LABEL_INPUT_FORM_USER_DATA (str): метки поля ввода</span>
<span class="sd"> MODAL_WINDOW_SCROLL_CONTAINER (str): контейнера с прокруткой модального окна</span>
<span class="sd"> MODAL_WINDOW_TITLE (str): заголовка тулбара</span>
<span class="sd"> MODAL_WINDOW_TEXT_FIELD_INPUT (str): текстового поля ввода</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">MODAL_WINDOW</span> <span class="o">=</span> <span class="s2">&quot;//div[contains(@class, &#39;v-dialog--active&#39;)]&quot;</span>
<span class="n">MODAL_WINDOW_SCROLL_CONTAINER</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">MODAL_WINDOW</span><span class="si">}</span><span class="s2">//div[contains(@class, &#39;scrollarea__body&#39;)]&quot;</span>
<span class="n">MODAL_WINDOW_TITLE</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">MODAL_WINDOW</span><span class="si">}</span><span class="s2">//div[contains(@class, &#39;v-toolbar__title&#39;)]&quot;</span>
<span class="n">MODAL_WINDOW_TEXT_FIELD_INPUT</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">MODAL_WINDOW</span><span class="si">}</span><span class="s2">//input&quot;</span>
<span class="n">INPUT_FORM_USER_DATA</span> <span class="o">=</span> <span class="s2">&quot;//form[@class=&#39;v-form&#39;]&quot;</span>
<span class="n">TEXT_FIELD_INPUT_FORM_USER_DATA</span> <span class="o">=</span> <span class="s2">&quot;xpath=div[2]/div/div/div/div/input&quot;</span>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2326,7 +2431,9 @@ TITLE (str): заголовка тулбара
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ToolbarLocators</span><span class="p">:</span>
<span class="normal">16</span>
<span class="normal">17</span>
<span class="normal">18</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ToolbarLocators</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Локаторы элементов панели инструментов (тулбара).</span>
<span class="sd"> Содержит XPath локаторы для:</span>
@ -2335,6 +2442,8 @@ TITLE (str): заголовка тулбара
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">TITLE</span> <span class="o">=</span> <span class="s2">&quot;//nav//div[contains(@class, &#39;v-toolbar__title&#39;)]&quot;</span>
<span class="n">ITEMS</span> <span class="o">=</span> <span class="s2">&quot;//nav//div[@class=&#39;v-toolbar__items&#39;]&quot;</span>
<span class="n">TABS</span> <span class="o">=</span> <span class="s2">&quot;//nav//div[contains(@class, &#39;v-toolbar__title&#39;)]//a[contains(@class, &#39;v-tabs__item&#39;)]&quot;</span>
<span class="n">TOOLTIP</span> <span class="o">=</span> <span class="s2">&quot;//div[contains(@class,&#39;v-tooltip__content menuable__content__active&#39;)]&quot;</span>
</code></pre></div></td></tr></table></div>
</details>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1603,6 +1645,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1812,6 +1875,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1869,6 +1953,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

Binary file not shown.

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1717,6 +1759,27 @@
<li class="md-nav__item">
<a href="../ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1926,6 +1989,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1983,6 +2067,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1726,6 +1768,27 @@
<li class="md-nav__item">
<a href="../ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1935,6 +1998,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1992,6 +2076,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1663,6 +1705,27 @@
<li class="md-nav__item">
<a href="../ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1872,6 +1935,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1929,6 +2013,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1572,6 +1614,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#pages.main_page.MainPage.click_events_panel_system_log_tab" class="md-nav__link">
<span class="md-ellipsis">
click_events_panel_system_log_tab
</span>
</a>
</li>
<li class="md-nav__item">
@ -1780,6 +1831,27 @@
<li class="md-nav__item">
<a href="../ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1989,6 +2061,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -2046,6 +2139,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2483,6 +2597,15 @@
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#pages.main_page.MainPage.click_events_panel_system_log_tab" class="md-nav__link">
<span class="md-ellipsis">
click_events_panel_system_log_tab
</span>
</a>
</li>
<li class="md-nav__item">
@ -2678,8 +2801,7 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 14</span>
<span class="normal"> 15</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 15</span>
<span class="normal"> 16</span>
<span class="normal"> 17</span>
<span class="normal"> 18</span>
@ -2830,7 +2952,13 @@ user_card: Карточка пользователя.</p>
<span class="normal">163</span>
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">MainPage</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
<span class="normal">166</span>
<span class="normal">167</span>
<span class="normal">168</span>
<span class="normal">169</span>
<span class="normal">170</span>
<span class="normal">171</span>
<span class="normal">172</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">MainPage</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс для работы с главной страницей приложения.</span>
<span class="sd"> Атрибуты:</span>
@ -2862,14 +2990,14 @@ user_card: Карточка пользователя.</p>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_item</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_subpanel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_subpanel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет рекурсивный поиск по панели навигации заданного элемента и делает клик по нему.&quot;&quot;&quot;</span>
<span class="n">active_item_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">)</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">ACTIVE_CONTAINER</span><span class="p">)</span>
<span class="n">node_locator</span> <span class="o">=</span> <span class="n">active_item_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">SUB_PANEL_MAIN</span><span class="p">)</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">TREEVIEW</span><span class="p">)</span><span class="o">.</span><span class="n">first</span>
<span class="c1"># Рекурсивный поиск в дереве v-treeview заданного элемента и клик по нему</span>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">node_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">node_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_events_panel_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки галочка вверх.&quot;&quot;&quot;</span>
@ -2881,6 +3009,11 @@ user_card: Карточка пользователя.</p>
<span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">click_expand_more_button</span><span class="p">()</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_events_panel_system_log_tab</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">SystemLogEventsContainer</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие tab-кнопки Системный журнал.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">click_system_log_tab</span><span class="p">()</span>
<span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">UserCard</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки пользователя.&quot;&quot;&quot;</span>
@ -3045,8 +3178,7 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
<span class="normal">25</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
@ -3055,7 +3187,8 @@ user_card: Карточка пользователя.</p>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
<span class="normal">34</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">34</span>
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">page</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Инициализирует элементы главной страницы.</span>
<span class="sd"> Args:</span>
@ -3088,10 +3221,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки галочка вверх.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">check_expand_less_button</span><span class="p">()</span>
@ -3117,10 +3250,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">140</span>
<span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие кнопки галочка вниз.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">check_expand_more_button</span><span class="p">()</span>
@ -3177,17 +3310,17 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span>
<span class="normal">161</span>
<span class="normal">162</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">162</span>
<span class="normal">163</span>
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">166</span>
<span class="normal">167</span>
<span class="normal">168</span>
<span class="normal">169</span>
<span class="normal">170</span>
<span class="normal">171</span>
<span class="normal">172</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_item_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет видимость элемента в панели навигации.</span>
<span class="sd"> Args:</span>
@ -3243,16 +3376,16 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">151</span>
<span class="normal">152</span>
<span class="normal">153</span>
<span class="normal">154</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_navigation_panel_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность вертикальной прокрутки панели.</span>
<span class="sd"> Returns:</span>
@ -3284,10 +3417,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">55</span>
<span class="normal">56</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_events_panel_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">58</span>
<span class="normal">59</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_events_panel_expand_less_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки галочка вверх.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">click_expand_less_button</span><span class="p">()</span>
@ -3313,10 +3446,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">60</span>
<span class="normal">61</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">61</span>
<span class="normal">62</span>
<span class="normal">63</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_events_panel_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">63</span>
<span class="normal">64</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_events_panel_expand_more_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки галочка вниз.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">click_expand_more_button</span><span class="p">()</span>
@ -3329,6 +3462,35 @@ user_card: Карточка пользователя.</p>
<div class="doc doc-object doc-function">
<h3 id="pages.main_page.MainPage.click_events_panel_system_log_tab" class="doc doc-heading">
<code class="highlight language-python"><span class="n">click_events_panel_system_log_tab</span><span class="p">()</span></code>
</h3>
<div class="doc doc-contents ">
<p>Выполняет нажатие tab-кнопки Системный журнал.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">66</span>
<span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_events_panel_system_log_tab</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">SystemLogEventsContainer</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие tab-кнопки Системный журнал.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">click_system_log_tab</span><span class="p">()</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
</div>
<div class="doc doc-object doc-function">
<h3 id="pages.main_page.MainPage.click_main_navigation_panel_item" class="doc doc-heading">
<code class="highlight language-python"><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span></code>
@ -3373,14 +3535,14 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">37</span>
<span class="normal">38</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">38</span>
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_main_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">44</span>
<span class="normal">45</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_main_navigation_panel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Кликает по элементу основной панели навигации.</span>
<span class="sd"> Args:</span>
@ -3398,7 +3560,7 @@ user_card: Карточка пользователя.</p>
<h3 id="pages.main_page.MainPage.click_subpanel_item" class="doc doc-heading">
<code class="highlight language-python"><span class="n">click_subpanel_item</span><span class="p">(</span><span class="n">item_name</span><span class="p">)</span></code>
<code class="highlight language-python"><span class="n">click_subpanel_item</span><span class="p">(</span><span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
</h3>
@ -3410,21 +3572,21 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">46</span>
<span class="normal">47</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_subpanel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">53</span>
<span class="normal">54</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_subpanel_item</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет рекурсивный поиск по панели навигации заданного элемента и делает клик по нему.&quot;&quot;&quot;</span>
<span class="n">active_item_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">)</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">ACTIVE_CONTAINER</span><span class="p">)</span>
<span class="n">node_locator</span> <span class="o">=</span> <span class="n">active_item_locator</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">SUB_PANEL_MAIN</span><span class="p">)</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">TREEVIEW</span><span class="p">)</span><span class="o">.</span><span class="n">first</span>
<span class="c1"># Рекурсивный поиск в дереве v-treeview заданного элемента и клик по нему</span>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">node_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">click_sub_item</span><span class="p">(</span><span class="n">node_locator</span><span class="p">,</span> <span class="n">item_name</span><span class="p">,</span> <span class="n">parent</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -3447,10 +3609,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">65</span>
<span class="normal">66</span>
<span class="normal">67</span>
<span class="normal">68</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">UserCard</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">click_user_button</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">UserCard</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет нажатие кнопки пользователя.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">click_user_button</span><span class="p">()</span>
@ -3476,10 +3638,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">70</span>
<span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">do_logout</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет выход из системы.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">do_logout</span><span class="p">()</span>
@ -3505,14 +3667,14 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span>
<span class="normal">81</span>
<span class="normal">82</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">expand_navigation_subpanel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">expand_navigation_subpanel</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Выполняет полное открытие активной главной навигационной подпанели.&quot;&quot;&quot;</span>
<span class="n">active_item_locator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">page</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_MAIN</span><span class="p">)</span><span class="o">.</span><span class="n">locator</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">ACTIVE_CONTAINER</span><span class="p">)</span>
@ -3542,10 +3704,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_counters_by_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">{}:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_counters_by_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">{}:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает набор значений кнопок счетчиков событий.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">get_event_button_values</span><span class="p">()</span>
@ -3571,18 +3733,18 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span>
<span class="normal">93</span>
<span class="normal">94</span>
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_counters_by_tooltips</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">{}:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 90</span>
<span class="normal"> 91</span>
<span class="normal"> 92</span>
<span class="normal"> 93</span>
<span class="normal"> 94</span>
<span class="normal"> 95</span>
<span class="normal"> 96</span>
<span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_event_counters_by_tooltips</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">{}:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает набор текстов всплывающих подсказок кнопок счетчиков событий.&quot;&quot;&quot;</span>
<span class="n">events</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">get_event_tooltip_texts</span><span class="p">()</span>
@ -3616,10 +3778,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">102</span>
<span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_events_panel_position</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_events_panel_position</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает текущее положение панели событий относительно страницы: &quot;top&quot;, &quot;center&quot;,&quot;bottom&quot;.&quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">event_panel</span><span class="o">.</span><span class="n">get_panel_position</span><span class="p">()</span>
@ -3645,10 +3807,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает панель навигации вниз.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span><span class="p">)</span>
@ -3674,10 +3836,10 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_navigation_panel_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает панель навигации вверх.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">NavigationPanelLocators</span><span class="o">.</span><span class="n">PANEL_SCROLL_CONTAINER</span><span class="p">)</span>
@ -3703,14 +3865,14 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_event_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_event_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие элементов панели событий.&quot;&quot;&quot;</span>
<span class="c1">## to-do: кнопки галочки???</span>
@ -3740,13 +3902,13 @@ user_card: Карточка пользователя.</p>
<details class="quote">
<summary>Source code in <code>pages\main_page.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_navigation_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_navigation_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие панели навигации.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">navigation_panel</span><span class="o">.</span><span class="n">check_visibility</span><span class="p">(</span>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1708,6 +1750,27 @@
<li class="md-nav__item">
<a href="../ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1917,6 +1980,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1974,6 +2058,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2682,30 +2787,7 @@
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span>
<span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span>
<span class="normal">152</span>
<span class="normal">153</span>
<span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ServiceStatusTab</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
<span class="normal">137</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">ServiceStatusTab</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс для работы с вкладкой &#39;Статус обслуживания&#39;.</span>
<span class="sd"> Предоставляет методы для взаимодействия с таблицей сервисов и проверки</span>
@ -2733,13 +2815,7 @@
<span class="sd"> AssertionError: Если таблица пуста.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="n">rows_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
<span class="k">if</span> <span class="n">rows_count</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;The contents of the table are missing&quot;</span>
<span class="k">return</span> <span class="n">rows_count</span> <span class="o">-</span> <span class="mi">1</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">get_rows_count</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает таблицу сервисов вверх.&quot;&quot;&quot;</span>
@ -2756,9 +2832,6 @@
<span class="sd"> Проверяет заголовки и наличие данных в таблице.</span>
<span class="sd"> Raises:</span>
<span class="sd"> AssertionError: Если таблица пуста или заголовки неверны.</span>
<span class="sd"> &quot;&quot;&quot;</span>
@ -2772,21 +2845,7 @@
<span class="s1">&#39;Image ТЭГ&#39;</span>
<span class="p">]</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;The contents of the table are missing&quot;</span>
<span class="n">actual_headers</span> <span class="o">=</span> <span class="n">table_content</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_equals</span><span class="p">(</span>
<span class="n">actual_headers</span><span class="p">,</span>
<span class="n">expected_headers</span><span class="p">,</span>
<span class="sa">f</span><span class="s2">&quot;Expected table headers </span><span class="si">{</span><span class="n">expected_headers</span><span class="si">}</span><span class="s2"> are not equal </span><span class="si">{</span><span class="n">actual_headers</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;Table body is missing&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_content</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span> <span class="n">expected_headers</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность вертикальной прокрутки таблицы.</span>
@ -2942,7 +3001,13 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">60</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span>
<span class="normal">59</span>
<span class="normal">60</span>
<span class="normal">61</span>
<span class="normal">62</span>
<span class="normal">63</span>
@ -2954,37 +3019,11 @@
<span class="normal">69</span>
<span class="normal">70</span>
<span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span>
<span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span>
<span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span>
<span class="normal">93</span>
<span class="normal">94</span>
<span class="normal">95</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">72</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет содержимое таблицы сервисов.</span>
<span class="sd"> Проверяет заголовки и наличие данных в таблице.</span>
<span class="sd"> Raises:</span>
<span class="sd"> AssertionError: Если таблица пуста или заголовки неверны.</span>
<span class="sd"> &quot;&quot;&quot;</span>
@ -2998,21 +3037,7 @@
<span class="s1">&#39;Image ТЭГ&#39;</span>
<span class="p">]</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;The contents of the table are missing&quot;</span>
<span class="n">actual_headers</span> <span class="o">=</span> <span class="n">table_content</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check_equals</span><span class="p">(</span>
<span class="n">actual_headers</span><span class="p">,</span>
<span class="n">expected_headers</span><span class="p">,</span>
<span class="sa">f</span><span class="s2">&quot;Expected table headers </span><span class="si">{</span><span class="n">expected_headers</span><span class="si">}</span><span class="s2"> are not equal </span><span class="si">{</span><span class="n">actual_headers</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;Table body is missing&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">check_content</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">,</span> <span class="n">expected_headers</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -3058,14 +3083,14 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет видимость первой строки таблицы.</span>
<span class="sd"> Raises:</span>
@ -3118,14 +3143,14 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">117</span>
<span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 94</span>
<span class="normal"> 95</span>
<span class="normal"> 96</span>
<span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет видимость последней строки таблицы.</span>
<span class="sd"> Raises:</span>
@ -3209,20 +3234,20 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span>
<span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет выделение указанной строки таблицы.</span>
<span class="sd"> Args:</span>
@ -3281,16 +3306,16 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span>
<span class="normal">102</span>
<span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">74</span>
<span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span>
<span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_services_table_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность вертикальной прокрутки таблицы.</span>
<span class="sd"> Returns:</span>
@ -3378,13 +3403,7 @@
<span class="normal">39</span>
<span class="normal">40</span>
<span class="normal">41</span>
<span class="normal">42</span>
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_rows_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_rows_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает количество строк в таблице (без заголовка).</span>
<span class="sd"> Returns:</span>
@ -3394,13 +3413,7 @@
<span class="sd"> AssertionError: Если таблица пуста.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="n">rows_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
<span class="k">if</span> <span class="n">rows_count</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;The contents of the table are missing&quot;</span>
<span class="k">return</span> <span class="n">rows_count</span> <span class="o">-</span> <span class="mi">1</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">get_rows_count</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -3423,10 +3436,10 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает таблицу сервисов вниз.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
@ -3452,10 +3465,10 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_services_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает таблицу сервисов вверх.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">services_table</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
@ -3504,17 +3517,17 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">150</span>
<span class="normal">151</span>
<span class="normal">152</span>
<span class="normal">153</span>
<span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span>
<span class="normal">158</span>
<span class="normal">159</span>
<span class="normal">160</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_services_table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_services_table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие таблицы сервисов.</span>
<span class="sd"> Raises:</span>
@ -3570,14 +3583,14 @@
<details class="quote">
<summary>Source code in <code>pages\service_status_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие тулбара на вкладке.</span>
<span class="sd"> Raises:</span>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1798,6 +1840,27 @@
<li class="md-nav__item">
<a href="../ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2007,6 +2070,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -2064,6 +2148,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -3131,12 +3236,7 @@
<span class="normal">407</span>
<span class="normal">408</span>
<span class="normal">409</span>
<span class="normal">410</span>
<span class="normal">411</span>
<span class="normal">412</span>
<span class="normal">413</span>
<span class="normal">414</span>
<span class="normal">415</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">SessionsTab</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
<span class="normal">410</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">SessionsTab</span><span class="p">(</span><span class="n">BasePage</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс для работы с вкладкой &#39;Сеанс&#39;.</span>
<span class="sd"> Предоставляет методы для взаимодействия с таблицей сеансов и проверки</span>
@ -3167,13 +3267,7 @@
<span class="sd"> AssertionError: Если таблица пуста.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="n">rows_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
<span class="k">if</span> <span class="n">rows_count</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;The contents of the table are missing&quot;</span>
<span class="k">return</span> <span class="n">rows_count</span> <span class="o">-</span> <span class="mi">1</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">get_rows_count</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">get_delete_session_button_from_row</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">TooltipButton</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает кнопку удаления сеанса для указанной строки.</span>
@ -3350,6 +3444,7 @@
<span class="s1">&#39;Адрес&#39;</span>
<span class="p">]</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="n">len_table_content</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
@ -3604,7 +3699,13 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">165</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">159</span>
<span class="normal">160</span>
<span class="normal">161</span>
<span class="normal">162</span>
<span class="normal">163</span>
<span class="normal">164</span>
<span class="normal">165</span>
<span class="normal">166</span>
<span class="normal">167</span>
<span class="normal">168</span>
@ -3645,13 +3746,7 @@
<span class="normal">203</span>
<span class="normal">204</span>
<span class="normal">205</span>
<span class="normal">206</span>
<span class="normal">207</span>
<span class="normal">208</span>
<span class="normal">209</span>
<span class="normal">210</span>
<span class="normal">211</span>
<span class="normal">212</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_delete_session_confirm_window</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="normal">206</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_delete_session_confirm_window</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot; Проверяет контент и возможность горизонтального скроллинга окна подтверждения удаления сеанс. &quot;&quot;&quot;</span>
<span class="c1"># Поиск в таблице сеанс сроки для текущего пользователя</span>
@ -3775,7 +3870,13 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">214</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">208</span>
<span class="normal">209</span>
<span class="normal">210</span>
<span class="normal">211</span>
<span class="normal">212</span>
<span class="normal">213</span>
<span class="normal">214</span>
<span class="normal">215</span>
<span class="normal">216</span>
<span class="normal">217</span>
@ -3809,12 +3910,7 @@
<span class="normal">245</span>
<span class="normal">246</span>
<span class="normal">247</span>
<span class="normal">248</span>
<span class="normal">249</span>
<span class="normal">250</span>
<span class="normal">251</span>
<span class="normal">252</span>
<span class="normal">253</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">verify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">248</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">verify</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет содержимое таблицы сеансов.</span>
<span class="sd"> Args:</span>
@ -3832,6 +3928,7 @@
<span class="s1">&#39;Адрес&#39;</span>
<span class="p">]</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="n">len_table_content</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
@ -3899,14 +3996,14 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">266</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">261</span>
<span class="normal">262</span>
<span class="normal">263</span>
<span class="normal">264</span>
<span class="normal">265</span>
<span class="normal">266</span>
<span class="normal">267</span>
<span class="normal">268</span>
<span class="normal">269</span>
<span class="normal">270</span>
<span class="normal">271</span>
<span class="normal">272</span>
<span class="normal">273</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">268</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_first_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет видимость первой строки таблицы.</span>
<span class="sd"> Raises:</span>
@ -3959,14 +4056,14 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">275</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">270</span>
<span class="normal">271</span>
<span class="normal">272</span>
<span class="normal">273</span>
<span class="normal">274</span>
<span class="normal">275</span>
<span class="normal">276</span>
<span class="normal">277</span>
<span class="normal">278</span>
<span class="normal">279</span>
<span class="normal">280</span>
<span class="normal">281</span>
<span class="normal">282</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">277</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_last_row_visibility</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет видимость последней строки таблицы.</span>
<span class="sd"> Raises:</span>
@ -4050,7 +4147,12 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">284</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">279</span>
<span class="normal">280</span>
<span class="normal">281</span>
<span class="normal">282</span>
<span class="normal">283</span>
<span class="normal">284</span>
<span class="normal">285</span>
<span class="normal">286</span>
<span class="normal">287</span>
@ -4058,12 +4160,7 @@
<span class="normal">289</span>
<span class="normal">290</span>
<span class="normal">291</span>
<span class="normal">292</span>
<span class="normal">293</span>
<span class="normal">294</span>
<span class="normal">295</span>
<span class="normal">296</span>
<span class="normal">297</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">292</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет выделение указанной строки таблицы.</span>
<span class="sd"> Args:</span>
@ -4122,16 +4219,16 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">255</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">250</span>
<span class="normal">251</span>
<span class="normal">252</span>
<span class="normal">253</span>
<span class="normal">254</span>
<span class="normal">255</span>
<span class="normal">256</span>
<span class="normal">257</span>
<span class="normal">258</span>
<span class="normal">259</span>
<span class="normal">260</span>
<span class="normal">261</span>
<span class="normal">262</span>
<span class="normal">263</span>
<span class="normal">264</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="normal">259</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">check_sessions_table_verticall_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность вертикальной прокрутки таблицы.</span>
<span class="sd"> Returns:</span>
@ -4217,7 +4314,13 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">129</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span>
<span class="normal">128</span>
<span class="normal">129</span>
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
@ -4233,13 +4336,7 @@
<span class="normal">142</span>
<span class="normal">143</span>
<span class="normal">144</span>
<span class="normal">145</span>
<span class="normal">146</span>
<span class="normal">147</span>
<span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">delete_session_by_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">145</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">delete_session_by_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Удаляет сеанс по индексу строки.</span>
<span class="sd"> Args:</span>
@ -4338,20 +4435,20 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">114</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span>
<span class="normal">117</span>
<span class="normal">118</span>
<span class="normal">119</span>
<span class="normal">120</span>
<span class="normal">121</span>
<span class="normal">122</span>
<span class="normal">123</span>
<span class="normal">124</span>
<span class="normal">125</span>
<span class="normal">126</span>
<span class="normal">127</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">delete_session_by_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">121</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">delete_session_by_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Удаляет сеанс по токену.</span>
<span class="sd"> Args:</span>
@ -4464,7 +4561,13 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 91</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 85</span>
<span class="normal"> 86</span>
<span class="normal"> 87</span>
<span class="normal"> 88</span>
<span class="normal"> 89</span>
<span class="normal"> 90</span>
<span class="normal"> 91</span>
<span class="normal"> 92</span>
<span class="normal"> 93</span>
<span class="normal"> 94</span>
@ -4479,13 +4582,7 @@
<span class="normal">103</span>
<span class="normal">104</span>
<span class="normal">105</span>
<span class="normal">106</span>
<span class="normal">107</span>
<span class="normal">108</span>
<span class="normal">109</span>
<span class="normal">110</span>
<span class="normal">111</span>
<span class="normal">112</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">find_session_in_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">find_session_in_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Ищет сеанс пользователя в таблице по выданному ему токену.</span>
<span class="sd"> Args:</span>
@ -4606,7 +4703,13 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">57</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span>
<span class="normal">59</span>
<span class="normal">60</span>
@ -4620,13 +4723,7 @@
<span class="normal">68</span>
<span class="normal">69</span>
<span class="normal">70</span>
<span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span>
<span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_delete_session_button_from_row</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">TooltipButton</span><span class="p">:</span>
<span class="normal">71</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_delete_session_button_from_row</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">TooltipButton</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает кнопку удаления сеанса для указанной строки.</span>
<span class="sd"> Args:</span>
@ -4725,13 +4822,7 @@
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_rows_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="normal">49</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_rows_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает количество строк в таблице (без заголовка).</span>
<span class="sd"> Returns:</span>
@ -4741,13 +4832,7 @@
<span class="sd"> AssertionError: Если таблица пуста.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">table_content</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
<span class="n">rows_count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">table_content</span><span class="p">)</span>
<span class="k">if</span> <span class="n">rows_count</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">assert</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;The contents of the table are missing&quot;</span>
<span class="k">return</span> <span class="n">rows_count</span> <span class="o">-</span> <span class="mi">1</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">get_rows_count</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_WORK_AREA</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>
@ -4795,17 +4880,17 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">79</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">73</span>
<span class="normal">74</span>
<span class="normal">75</span>
<span class="normal">76</span>
<span class="normal">77</span>
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span>
<span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_session_token</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="normal">83</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_session_token</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Возвращает токен текущего пользователя.</span>
<span class="sd"> Args:</span>
@ -4838,10 +4923,10 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">159</span>
<span class="normal">160</span>
<span class="normal">161</span>
<span class="normal">162</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_sessions_table_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">153</span>
<span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_sessions_table_down</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает таблицу сеансов вниз.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">scroll_down</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
@ -4867,10 +4952,10 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">154</span>
<span class="normal">155</span>
<span class="normal">156</span>
<span class="normal">157</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_sessions_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">148</span>
<span class="normal">149</span>
<span class="normal">150</span>
<span class="normal">151</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">scroll_sessions_table_up</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Прокручивает таблицу сеансов вверх.&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">sessions_table</span><span class="o">.</span><span class="n">scroll_up</span><span class="p">(</span><span class="n">TableLocators</span><span class="o">.</span><span class="n">TABLE_SCROLL_CONTAINER</span><span class="p">)</span>
@ -4966,7 +5051,12 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">320</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">315</span>
<span class="normal">316</span>
<span class="normal">317</span>
<span class="normal">318</span>
<span class="normal">319</span>
<span class="normal">320</span>
<span class="normal">321</span>
<span class="normal">322</span>
<span class="normal">323</span>
@ -4986,12 +5076,7 @@
<span class="normal">337</span>
<span class="normal">338</span>
<span class="normal">339</span>
<span class="normal">340</span>
<span class="normal">341</span>
<span class="normal">342</span>
<span class="normal">343</span>
<span class="normal">344</span>
<span class="normal">345</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_delete_button_on_sessions_table_row</span><span class="p">(</span>
<span class="normal">340</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_delete_button_on_sessions_table_row</span><span class="p">(</span>
<span class="bp">self</span><span class="p">,</span>
<span class="n">row_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
<span class="n">tooltip</span><span class="p">:</span> <span class="nb">str</span>
@ -5093,18 +5178,18 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">348</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">343</span>
<span class="normal">344</span>
<span class="normal">345</span>
<span class="normal">346</span>
<span class="normal">347</span>
<span class="normal">348</span>
<span class="normal">349</span>
<span class="normal">350</span>
<span class="normal">351</span>
<span class="normal">352</span>
<span class="normal">353</span>
<span class="normal">354</span>
<span class="normal">355</span>
<span class="normal">356</span>
<span class="normal">357</span>
<span class="normal">358</span>
<span class="normal">359</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_session_in_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">354</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_session_in_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие сеанса пользователя в таблице.</span>
<span class="sd"> Args:</span>
@ -5161,17 +5246,17 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">308</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">303</span>
<span class="normal">304</span>
<span class="normal">305</span>
<span class="normal">306</span>
<span class="normal">307</span>
<span class="normal">308</span>
<span class="normal">309</span>
<span class="normal">310</span>
<span class="normal">311</span>
<span class="normal">312</span>
<span class="normal">313</span>
<span class="normal">314</span>
<span class="normal">315</span>
<span class="normal">316</span>
<span class="normal">317</span>
<span class="normal">318</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_sessions_table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">313</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_sessions_table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие таблицы сеансов.</span>
<span class="sd"> Raises:</span>
@ -5227,14 +5312,14 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">299</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">294</span>
<span class="normal">295</span>
<span class="normal">296</span>
<span class="normal">297</span>
<span class="normal">298</span>
<span class="normal">299</span>
<span class="normal">300</span>
<span class="normal">301</span>
<span class="normal">302</span>
<span class="normal">303</span>
<span class="normal">304</span>
<span class="normal">305</span>
<span class="normal">306</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">301</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_be_toolbar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет наличие тулбара на вкладке.</span>
<span class="sd"> Raises:</span>
@ -5318,18 +5403,18 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">361</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">356</span>
<span class="normal">357</span>
<span class="normal">358</span>
<span class="normal">359</span>
<span class="normal">360</span>
<span class="normal">361</span>
<span class="normal">362</span>
<span class="normal">363</span>
<span class="normal">364</span>
<span class="normal">365</span>
<span class="normal">366</span>
<span class="normal">367</span>
<span class="normal">368</span>
<span class="normal">369</span>
<span class="normal">370</span>
<span class="normal">371</span>
<span class="normal">372</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_not_be_session_in_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">367</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">should_not_be_session_in_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет отсутствие сеанса пользователя в таблице.</span>
<span class="sd"> Args:</span>
@ -5417,7 +5502,12 @@
<details class="quote">
<summary>Source code in <code>pages\session_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">375</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">370</span>
<span class="normal">371</span>
<span class="normal">372</span>
<span class="normal">373</span>
<span class="normal">374</span>
<span class="normal">375</span>
<span class="normal">376</span>
<span class="normal">377</span>
<span class="normal">378</span>
@ -5452,12 +5542,7 @@
<span class="normal">407</span>
<span class="normal">408</span>
<span class="normal">409</span>
<span class="normal">410</span>
<span class="normal">411</span>
<span class="normal">412</span>
<span class="normal">413</span>
<span class="normal">414</span>
<span class="normal">415</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">verify_sessions_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sessions_table</span><span class="p">:</span> <span class="nb">list</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">410</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">verify_sessions_table_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sessions_table</span><span class="p">:</span> <span class="nb">list</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Сверяет данные таблицы с данными из БД.</span>
<span class="sd"> Args:</span>

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@
<link rel="prev" href="../templates_tab/">
<link rel="next" href="../../tests/e2e/test_event_panel/">
<link rel="next" href="../ztp_templates_tab/">
<link rel="icon" href="../../assets/images/favicon.png">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1897,6 +1939,27 @@
<li class="md-nav__item">
<a href="../ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2106,6 +2169,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -2163,6 +2247,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -9,7 +9,7 @@
<link rel="prev" href="../../e2e/test_users_tab/">
<link rel="prev" href="../../e2e/test_ztp_templates_tab/">
<link rel="next" href="../test_navigation_panel/">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1754,6 +1817,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../e2e/test_templates_tab/" class="md-nav__link">
@ -1811,6 +1895,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1754,6 +1817,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../e2e/test_templates_tab/" class="md-nav__link">
@ -1811,6 +1895,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1754,6 +1817,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../e2e/test_templates_tab/" class="md-nav__link">
@ -1811,6 +1895,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1754,6 +1817,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../e2e/test_templates_tab/" class="md-nav__link">
@ -1811,6 +1895,27 @@
<li class="md-nav__item">
<a href="../../e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -9,7 +9,7 @@
<link rel="prev" href="../../../pages/users_tab/">
<link rel="prev" href="../../../pages/ztp_templates_tab/">
<link rel="next" href="../test_expand_navigation_panel/">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1838,6 +1901,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1895,6 +1979,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1838,6 +1901,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1895,6 +1979,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2372,8 +2477,7 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_expand_navigation_panel.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">13</span>
<span class="normal">14</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span>
<span class="normal">17</span>
@ -2440,7 +2544,18 @@
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span>
<span class="normal">81</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestNavigationPanel</span><span class="p">:</span>
<span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestNavigationPanel</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Класс тестов для проверки панели навигации.</span>
<span class="sd"> Тесты покрывают следующие сценарии:</span>
@ -2480,6 +2595,7 @@
<span class="n">mp</span><span class="o">.</span><span class="n">expand_navigation_subpanel</span><span class="p">()</span>
<span class="c1"># @pytest.mark.develop</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_sub_panel_item_click</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность клика заданного элемента в подпанели навигации.</span>
@ -2499,16 +2615,25 @@
<span class="c1"># Проверяем наличие панели навигации</span>
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
<span class="c1"># Открываем все пункты панели</span>
<span class="c1"># Открываем разные пункты панели</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">&quot;Настройки&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Обслуживание и диагностика&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Статус обслуживания&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
<span class="c1"># Открываем/закрываем пункт панели</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Пользователи&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Пользователи&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
<span class="c1"># Открываем пункты панели с одинаковыми имнами, но разным расположением</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Шаблоны&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Zero Touch Provisioning&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Шаблоны&quot;</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="s2">&quot;Zero Touch Provisioning&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
@ -2571,8 +2696,7 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_expand_navigation_panel.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">24</span>
<span class="normal">25</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">25</span>
<span class="normal">26</span>
<span class="normal">27</span>
<span class="normal">28</span>
@ -2598,7 +2722,8 @@
<span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_expand_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="normal">51</span>
<span class="normal">52</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_expand_panel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет полное раскрытие панели навигации.</span>
<span class="sd"> Args:</span>
@ -2679,9 +2804,7 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_expand_navigation_panel.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">53</span>
<span class="normal">54</span>
<span class="normal">55</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">55</span>
<span class="normal">56</span>
<span class="normal">57</span>
<span class="normal">58</span>
@ -2707,7 +2830,18 @@
<span class="normal">78</span>
<span class="normal">79</span>
<span class="normal">80</span>
<span class="normal">81</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_sub_panel_item_click</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="normal">81</span>
<span class="normal">82</span>
<span class="normal">83</span>
<span class="normal">84</span>
<span class="normal">85</span>
<span class="normal">86</span>
<span class="normal">87</span>
<span class="normal">88</span>
<span class="normal">89</span>
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_sub_panel_item_click</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверяет возможность клика заданного элемента в подпанели навигации.</span>
<span class="sd"> Args:</span>
@ -2726,16 +2860,25 @@
<span class="c1"># Проверяем наличие панели навигации</span>
<span class="n">mp</span><span class="o">.</span><span class="n">should_be_navigation_panel</span><span class="p">()</span>
<span class="c1"># Открываем все пункты панели</span>
<span class="c1"># Открываем разные пункты панели</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">&quot;Настройки&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Обслуживание и диагностика&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Статус обслуживания&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
<span class="c1"># Открываем/закрываем пункт панели</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Пользователи&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Пользователи&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
<span class="c1"># Открываем пункты панели с одинаковыми имнами, но разным расположением</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Шаблоны&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Zero Touch Provisioning&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Шаблоны&quot;</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="s2">&quot;Zero Touch Provisioning&quot;</span><span class="p">)</span>
<span class="n">mp</span><span class="o">.</span><span class="n">wait_for_timeout</span><span class="p">(</span><span class="mi">500</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
</details>
</div>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1847,6 +1910,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1904,6 +1988,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1856,6 +1919,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1913,6 +1997,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1847,6 +1910,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1904,6 +1988,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -12,7 +12,7 @@
<link rel="prev" href="../test_service_status_tab/">
<link rel="next" href="../test_templates_tab/">
<link rel="next" href="../test_system_log_events_container/">
<link rel="icon" href="../../../assets/images/favicon.png">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1910,6 +1973,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1967,6 +2051,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,7 @@
<link rel="prev" href="../test_sessions_tab/">
<link rel="prev" href="../test_system_log_events_container/">
<link rel="next" href="../test_user_card/">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1754,6 +1817,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
@ -1940,6 +2024,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -2447,13 +2552,12 @@
<p>Набор тестов для вкладки 'Шаблоны'.</p>
<p>Проверяет корректность отображения и функциональность элементов вкладки Шаблоны.</p>
<p>Тесты покрывают следующие сценарии:
1. test_templates_tab_content - Проверка содержимого вкладки (тулбар, таблица шаблонов)
2. test_templates_table_row_highlighting - Проверка выделения строк в таблице шаблонов
3. test_templates_table_scrolling - Проверка вертикального скроллинга таблицы шаблонов
4. test_templates_modal_window_content - Проверка содержимого модального окна шаблона
5. test_templates_modal_window_scrolling - Проверка скроллинга модального окна шаблона
6. test_templates_modal_window_api_data_consistency - [В разработке]
Проверка соответствия данных модального окна данным из API</p>
1. test_templates_tab_content - Проверка содержимого вкладки
2. test_templates_table_row_highlighting - Проверка выделения строк в таблице
3. test_templates_table_scrolling - Проверка вертикального скроллинга таблицы
4. test_templates_modal_window_content - Проверка содержимого модального окна
5. test_templates_modal_window_scrolling - Проверка скроллинга модального окна
6. test_templates_modal_window_api_data_consistency - Проверка соответствия данных API</p>
@ -2463,7 +2567,8 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 15</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 14</span>
<span class="normal"> 15</span>
<span class="normal"> 16</span>
<span class="normal"> 17</span>
<span class="normal"> 18</span>
@ -2706,23 +2811,18 @@
<span class="normal">255</span>
<span class="normal">256</span>
<span class="normal">257</span>
<span class="normal">258</span>
<span class="normal">259</span>
<span class="normal">260</span>
<span class="normal">261</span>
<span class="normal">262</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestTemplatesTab</span><span class="p">:</span>
<span class="normal">258</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">TestTemplatesTab</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Набор тестов для вкладки &#39;Шаблоны&#39;.</span>
<span class="sd"> Проверяет корректность отображения и функциональность элементов вкладки Шаблоны.</span>
<span class="sd"> Тесты покрывают следующие сценарии:</span>
<span class="sd"> 1. test_templates_tab_content - Проверка содержимого вкладки (тулбар, таблица шаблонов)</span>
<span class="sd"> 2. test_templates_table_row_highlighting - Проверка выделения строк в таблице шаблонов</span>
<span class="sd"> 3. test_templates_table_scrolling - Проверка вертикального скроллинга таблицы шаблонов</span>
<span class="sd"> 4. test_templates_modal_window_content - Проверка содержимого модального окна шаблона</span>
<span class="sd"> 5. test_templates_modal_window_scrolling - Проверка скроллинга модального окна шаблона</span>
<span class="sd"> 6. test_templates_modal_window_api_data_consistency - [В разработке]</span>
<span class="sd"> Проверка соответствия данных модального окна данным из API</span>
<span class="sd"> 1. test_templates_tab_content - Проверка содержимого вкладки</span>
<span class="sd"> 2. test_templates_table_row_highlighting - Проверка выделения строк в таблице</span>
<span class="sd"> 3. test_templates_table_scrolling - Проверка вертикального скроллинга таблицы</span>
<span class="sd"> 4. test_templates_modal_window_content - Проверка содержимого модального окна</span>
<span class="sd"> 5. test_templates_modal_window_scrolling - Проверка скроллинга модального окна</span>
<span class="sd"> 6. test_templates_modal_window_api_data_consistency - Проверка соответствия данных API</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">&quot;function&quot;</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
@ -2745,7 +2845,6 @@
<span class="n">main_page</span><span class="o">.</span><span class="n">click_main_navigation_panel_item</span><span class="p">(</span><span class="s2">&quot;Настройки&quot;</span><span class="p">)</span>
<span class="n">main_page</span><span class="o">.</span><span class="n">click_subpanel_item</span><span class="p">(</span><span class="s2">&quot;Шаблоны&quot;</span><span class="p">)</span>
<span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест содержимого вкладки &#39;Шаблоны&#39;.</span>
@ -2768,7 +2867,6 @@
<span class="c1"># Проверка содержимого таблицы шаблонов</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">check_templates_table_content</span><span class="p">()</span>
<span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверка выделения строк в таблице шаблонов.</span>
@ -2794,7 +2892,6 @@
<span class="n">templates_tab</span><span class="o">.</span><span class="n">check_templates_table_row_highlighting</span><span class="p">(</span><span class="n">rows_count</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">check_templates_table_row_highlighting</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">rows_count</span> <span class="o">/</span> <span class="mi">2</span><span class="p">))</span>
<span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_table_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверка вертикального скроллинга таблицы шаблонов.</span>
@ -2830,12 +2927,11 @@
<span class="c1"># Проверка видимости первой строки после прокрутки</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">check_templates_table_first_row_visibility</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Таблица не поддерживает вертикальный скроллинг - проверяем базовую функциональность&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Таблица не поддерживает вертикальный скроллинг&quot;</span><span class="p">)</span>
<span class="c1"># Проверка видимости первой строки</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">check_templates_table_first_row_visibility</span><span class="p">()</span>
<span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест содержимого модального окна шаблона.</span>
@ -2873,7 +2969,6 @@
<span class="c1"># Проверяем, что модальное окно закрылось</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">should_not_be_modal_window</span><span class="p">()</span>
<span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест скроллинга модального окна шаблона.</span>
@ -2923,7 +3018,7 @@
<span class="c1"># Проверяем, что модальное окно закрылось</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">should_not_be_modal_window</span><span class="p">()</span>
<span class="c1">#@pytest.mark.skip(reason=&quot;Разрабатывается. Временно исключено из тестирования&quot;)</span>
<span class="c1"># @pytest.mark.skip(reason=&quot;Разрабатывается. Временно исключено из тестирования&quot;)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_api_data_consistency</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест соответствия данных модального окна данным из API.</span>
@ -2951,7 +3046,10 @@
<span class="n">templates_tab</span><span class="o">.</span><span class="n">should_be_modal_window</span><span class="p">()</span>
<span class="c1"># Проверка соответствия данных модального окна данным из API</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">verify_json_container_content</span><span class="p">()</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">verify_json_container_content</span><span class="p">(</span>
<span class="n">template_name</span><span class="p">,</span>
<span class="n">save_to_file</span><span class="o">=</span><span class="kc">False</span>
<span class="p">)</span>
<span class="c1"># Закрытие модального окна через кнопку закрытия</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">close_modal_window_by_toolbar_button</span><span class="p">(</span><span class="n">template_name</span><span class="p">)</span>
@ -2992,7 +3090,9 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">30</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">28</span>
<span class="normal">29</span>
<span class="normal">30</span>
<span class="normal">31</span>
<span class="normal">32</span>
<span class="normal">33</span>
@ -3008,9 +3108,7 @@
<span class="normal">43</span>
<span class="normal">44</span>
<span class="normal">45</span>
<span class="normal">46</span>
<span class="normal">47</span>
<span class="normal">48</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">&quot;function&quot;</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">fixture</span><span class="p">(</span><span class="n">scope</span><span class="o">=</span><span class="s2">&quot;function&quot;</span><span class="p">,</span> <span class="n">autouse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Фикстура для подготовки тестового окружения.</span>
@ -3055,7 +3153,14 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">229</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">222</span>
<span class="normal">223</span>
<span class="normal">224</span>
<span class="normal">225</span>
<span class="normal">226</span>
<span class="normal">227</span>
<span class="normal">228</span>
<span class="normal">229</span>
<span class="normal">230</span>
<span class="normal">231</span>
<span class="normal">232</span>
@ -3084,11 +3189,7 @@
<span class="normal">255</span>
<span class="normal">256</span>
<span class="normal">257</span>
<span class="normal">258</span>
<span class="normal">259</span>
<span class="normal">260</span>
<span class="normal">261</span>
<span class="normal">262</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_api_data_consistency</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">258</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_api_data_consistency</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест соответствия данных модального окна данным из API.</span>
<span class="sd"> Проверяет:</span>
@ -3115,7 +3216,10 @@
<span class="n">templates_tab</span><span class="o">.</span><span class="n">should_be_modal_window</span><span class="p">()</span>
<span class="c1"># Проверка соответствия данных модального окна данным из API</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">verify_json_container_content</span><span class="p">()</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">verify_json_container_content</span><span class="p">(</span>
<span class="n">template_name</span><span class="p">,</span>
<span class="n">save_to_file</span><span class="o">=</span><span class="kc">False</span>
<span class="p">)</span>
<span class="c1"># Закрытие модального окна через кнопку закрытия</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">close_modal_window_by_toolbar_button</span><span class="p">(</span><span class="n">template_name</span><span class="p">)</span>
@ -3150,7 +3254,12 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">140</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span>
<span class="normal">139</span>
<span class="normal">140</span>
<span class="normal">141</span>
<span class="normal">142</span>
<span class="normal">143</span>
@ -3180,14 +3289,7 @@
<span class="normal">167</span>
<span class="normal">168</span>
<span class="normal">169</span>
<span class="normal">170</span>
<span class="normal">171</span>
<span class="normal">172</span>
<span class="normal">173</span>
<span class="normal">174</span>
<span class="normal">175</span>
<span class="normal">176</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">170</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест содержимого модального окна шаблона.</span>
<span class="sd"> Проверяет:</span>
@ -3249,7 +3351,13 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">178</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">172</span>
<span class="normal">173</span>
<span class="normal">174</span>
<span class="normal">175</span>
<span class="normal">176</span>
<span class="normal">177</span>
<span class="normal">178</span>
<span class="normal">179</span>
<span class="normal">180</span>
<span class="normal">181</span>
@ -3290,15 +3398,7 @@
<span class="normal">216</span>
<span class="normal">217</span>
<span class="normal">218</span>
<span class="normal">219</span>
<span class="normal">220</span>
<span class="normal">221</span>
<span class="normal">222</span>
<span class="normal">223</span>
<span class="normal">224</span>
<span class="normal">225</span>
<span class="normal">226</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">219</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_templates_modal_window_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест скроллинга модального окна шаблона.</span>
<span class="sd"> Проверяет:</span>
@ -3372,7 +3472,9 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">50</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">48</span>
<span class="normal">49</span>
<span class="normal">50</span>
<span class="normal">51</span>
<span class="normal">52</span>
<span class="normal">53</span>
@ -3390,11 +3492,7 @@
<span class="normal">65</span>
<span class="normal">66</span>
<span class="normal">67</span>
<span class="normal">68</span>
<span class="normal">69</span>
<span class="normal">70</span>
<span class="normal">71</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">68</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_templates_tab_content</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Тест содержимого вкладки &#39;Шаблоны&#39;.</span>
<span class="sd"> Проверяет:</span>
@ -3441,7 +3539,10 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">73</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">70</span>
<span class="normal">71</span>
<span class="normal">72</span>
<span class="normal">73</span>
<span class="normal">74</span>
<span class="normal">75</span>
<span class="normal">76</span>
@ -3461,12 +3562,7 @@
<span class="normal">90</span>
<span class="normal">91</span>
<span class="normal">92</span>
<span class="normal">93</span>
<span class="normal">94</span>
<span class="normal">95</span>
<span class="normal">96</span>
<span class="normal">97</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">93</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_templates_table_row_highlighting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверка выделения строк в таблице шаблонов.</span>
<span class="sd"> Проверяет корректность выделения строк при клике на различные позиции:</span>
@ -3516,7 +3612,11 @@
<details class="quote">
<summary>Source code in <code>tests\e2e\test_templates_tab.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 99</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 95</span>
<span class="normal"> 96</span>
<span class="normal"> 97</span>
<span class="normal"> 98</span>
<span class="normal"> 99</span>
<span class="normal">100</span>
<span class="normal">101</span>
<span class="normal">102</span>
@ -3550,13 +3650,7 @@
<span class="normal">130</span>
<span class="normal">131</span>
<span class="normal">132</span>
<span class="normal">133</span>
<span class="normal">134</span>
<span class="normal">135</span>
<span class="normal">136</span>
<span class="normal">137</span>
<span class="normal">138</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@pytest</span><span class="o">.</span><span class="n">mark</span><span class="o">.</span><span class="n">skip</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="s2">&quot;Временно исключено из тестирования&quot;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">test_templates_table_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="normal">133</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">test_templates_table_scrolling</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">browser</span><span class="p">:</span> <span class="n">Page</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Проверка вертикального скроллинга таблицы шаблонов.</span>
<span class="sd"> Проверяет:</span>
@ -3591,7 +3685,7 @@
<span class="c1"># Проверка видимости первой строки после прокрутки</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">check_templates_table_first_row_visibility</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Таблица не поддерживает вертикальный скроллинг - проверяем базовую функциональность&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Таблица не поддерживает вертикальный скроллинг&quot;</span><span class="p">)</span>
<span class="c1"># Проверка видимости первой строки</span>
<span class="n">templates_tab</span><span class="o">.</span><span class="n">check_templates_table_first_row_visibility</span><span class="p">()</span>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1756,6 +1819,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1949,6 +2033,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -12,7 +12,7 @@
<link rel="prev" href="../test_user_card/">
<link rel="next" href="../../components/test_json_container/">
<link rel="next" href="../test_ztp_templates_tab/">
<link rel="icon" href="../../../assets/images/favicon.png">
@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1756,6 +1819,27 @@
<li class="md-nav__item">
<a href="../test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../test_templates_tab/" class="md-nav__link">
@ -1985,6 +2069,27 @@
<li class="md-nav__item">
<a href="../test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

File diff suppressed because it is too large Load Diff

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1752,6 +1815,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1809,6 +1893,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>

View File

@ -751,6 +751,27 @@
<li class="md-nav__item">
<a href="../../components/events_container_component/" class="md-nav__link">
<span class="md-ellipsis">
EventsContainerComponent
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components/json_container_component/" class="md-nav__link">
@ -898,6 +919,27 @@
<li class="md-nav__item">
<a href="../../components_derived/container_system_log_events/" class="md-nav__link">
<span class="md-ellipsis">
SystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../components_derived/dialog_user_settings/" class="md-nav__link">
@ -1543,6 +1585,27 @@
<li class="md-nav__item">
<a href="../../pages/ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
ZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>
@ -1752,6 +1815,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_system_log_events_container/" class="md-nav__link">
<span class="md-ellipsis">
TestSystemLogEventsContainer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../tests/e2e/test_templates_tab/" class="md-nav__link">
@ -1809,6 +1893,27 @@
<li class="md-nav__item">
<a href="../../tests/e2e/test_ztp_templates_tab/" class="md-nav__link">
<span class="md-ellipsis">
TestZTPTemplatesTab
</span>
</a>
</li>
</ul>
</nav>