e-nms_qa_automation/docs/build/html/_modules/fixtures/pages.html

318 lines
29 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html class="writer-html5" lang="ru" data-content_root="../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>fixtures.pages &mdash; документация e-nms-qa-automation 0.1.0</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=e59714d7" />
<script src="../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../_static/documentation_options.js?v=6ff560e8"></script>
<script src="../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../_static/translations.js?v=cd1d70c9"></script>
<script src="../../_static/js/theme.js"></script>
<link rel="index" title="Алфавитный указатель" href="../../genindex.html" />
<link rel="search" title="Поиск" href="../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home">
e-nms-qa-automation
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Поиск в документации" aria-label="Поиск в документации" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Меню навигации">
<!-- Local TOC -->
<div class="local-toc"></div>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Меню навигации для мобильных устройств" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">e-nms-qa-automation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Навигация по страницам">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../index.html">Код модуля</a></li>
<li class="breadcrumb-item active">fixtures.pages</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Исходный код fixtures.pages</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;Модуль pages содержит фикстуры и функции для работы с Playwright.</span>
<span class="sd">Предоставляет инструменты для управления браузером, контекстами и страницами</span>
<span class="sd">в тестах pytest, включая настройку параметров запуска.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">ast</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">pytest</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">playwright.sync_api</span><span class="w"> </span><span class="kn">import</span> <span class="n">Browser</span><span class="p">,</span> <span class="n">BrowserContext</span><span class="p">,</span> <span class="n">Page</span><span class="p">,</span> <span class="n">sync_playwright</span><span class="p">,</span> <span class="n">Playwright</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">_pytest.config.argparsing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Parser</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">_pytest.fixtures</span><span class="w"> </span><span class="kn">import</span> <span class="n">FixtureRequest</span>
<div class="viewcode-block" id="pytest_addoption">
<a class="viewcode-back" href="../../fixtures.html#fixtures.pages.pytest_addoption">[документация]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">pytest_addoption</span><span class="p">(</span><span class="n">parser</span><span class="p">:</span> <span class="n">Parser</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Добавляет опции командной строки для настройки браузера.</span>
<span class="sd"> Args:</span>
<span class="sd"> parser: Парсер pytest для добавления опций.</span>
<span class="sd"> Опции:</span>
<span class="sd"> --bn: Браузер (chrome, remote_chrome, firefox)</span>
<span class="sd"> --h: Режим headless (True/False)</span>
<span class="sd"> --s: Размер окна {&#39;width&#39;: int, &#39;height&#39;: int}</span>
<span class="sd"> --slow: Задержка между действиями (мс)</span>
<span class="sd"> --t: Таймаут по умолчанию (мс)</span>
<span class="sd"> --l: Локаль браузера</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">&#39;--bn&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">&quot;chrome&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;Choose browser: chrome, remote_chrome or firefox&quot;</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">&#39;--h&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Choose headless: True or False&#39;</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">&#39;--s&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s2">&quot;{&#39;width&#39;: 1600, &#39;height&#39;: 900}&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Size window: width,height&#39;</span><span class="p">)</span>
<span class="c1"># Закомментированные альтернативные размеры окон</span>
<span class="c1"># parser.addoption(&#39;--s&#39;, action=&#39;store&#39;, default=&quot;{&#39;width&#39;: 1920, &#39;height&#39;: 1080}&quot;,</span>
<span class="c1"># help=&#39;Size window: width,height&#39;)</span>
<span class="c1"># parser.addoption(&#39;--s&#39;, action=&#39;store&#39;, default=&quot;{&#39;width&#39;: 1920, &#39;height&#39;: 300}&quot;,</span>
<span class="c1"># help=&#39;Size window: width,height&#39;)</span>
<span class="c1"># parser.addoption(&#39;--s&#39;, action=&#39;store&#39;, default=&quot;{&#39;width&#39;: 300, &#39;height&#39;: 420}&quot;,</span>
<span class="c1"># help=&#39;Size window: width,height&#39;)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">&#39;--slow&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Choose slow_mo for robot action&#39;</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">&#39;--t&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">60000</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Choose timeout&#39;</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">addoption</span><span class="p">(</span><span class="s1">&#39;--l&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">&#39;ru-RU&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s1">&#39;Choose locale&#39;</span><span class="p">)</span></div>
<span class="c1"># Закомментированная опция для Qase</span>
<span class="c1"># parser.addini(&#39;qs_to_api_token&#39;, default=os.getenv(&quot;QASE_TOKEN&quot;), help=&#39;Qase app token&#39;)</span>
<div class="viewcode-block" id="browser">
<a class="viewcode-back" href="../../fixtures.html#fixtures.pages.browser">[документация]</a>
<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="s1">&#39;class&#39;</span><span class="p">)</span>
<span class="k">def</span><span class="w"> </span><span class="nf">browser</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-&gt;</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>
<span class="sd"> request: Объект запроса pytest для доступа к конфигурации.</span>
<span class="sd"> Returns:</span>
<span class="sd"> Page: Экземпляр страницы браузера.</span>
<span class="sd"> Yields:</span>
<span class="sd"> Page: Страница для использования в тестах.</span>
<span class="sd"> Note:</span>
<span class="sd"> Автоматически закрывает браузер после тестов.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">playwright</span> <span class="o">=</span> <span class="n">sync_playwright</span><span class="p">()</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
<span class="c1"># Выбор браузера на основе параметра командной строки</span>
<span class="k">if</span> <span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;bn&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;remote_chrome&#39;</span><span class="p">:</span>
<span class="n">browser</span> <span class="o">=</span> <span class="n">get_remote_chrome</span><span class="p">(</span><span class="n">playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">)</span>
<span class="n">context</span> <span class="o">=</span> <span class="n">get_context</span><span class="p">(</span><span class="n">browser</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="s1">&#39;remote&#39;</span><span class="p">)</span>
<span class="n">page_data</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">new_page</span><span class="p">()</span>
<span class="k">elif</span> <span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;bn&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;firefox&#39;</span><span class="p">:</span>
<span class="n">browser</span> <span class="o">=</span> <span class="n">get_firefox_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">)</span>
<span class="n">context</span> <span class="o">=</span> <span class="n">get_context</span><span class="p">(</span><span class="n">browser</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="s1">&#39;local&#39;</span><span class="p">)</span>
<span class="n">page_data</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">new_page</span><span class="p">()</span>
<span class="k">elif</span> <span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;bn&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;chrome&#39;</span><span class="p">:</span>
<span class="n">browser</span> <span class="o">=</span> <span class="n">get_chrome_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">)</span>
<span class="n">context</span> <span class="o">=</span> <span class="n">get_context</span><span class="p">(</span><span class="n">browser</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="s1">&#39;local&#39;</span><span class="p">)</span>
<span class="n">page_data</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">new_page</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">browser</span> <span class="o">=</span> <span class="n">get_chrome_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">)</span>
<span class="n">context</span> <span class="o">=</span> <span class="n">get_context</span><span class="p">(</span><span class="n">browser</span><span class="p">,</span> <span class="n">request</span><span class="p">,</span> <span class="s1">&#39;local&#39;</span><span class="p">)</span>
<span class="n">page_data</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">new_page</span><span class="p">()</span>
<span class="k">yield</span> <span class="n">page_data</span>
<span class="c1"># Очистка после завершения тестов</span>
<span class="k">for</span> <span class="n">context</span> <span class="ow">in</span> <span class="n">browser</span><span class="o">.</span><span class="n">contexts</span><span class="p">:</span>
<span class="n">context</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">browser</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">playwright</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span></div>
<div class="viewcode-block" id="get_firefox_browser">
<a class="viewcode-back" href="../../fixtures.html#fixtures.pages.get_firefox_browser">[документация]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">get_firefox_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">:</span> <span class="n">Playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Browser</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Создает и возвращает экземпляр Firefox браузера.</span>
<span class="sd"> Args:</span>
<span class="sd"> playwright: Экземпляр Playwright.</span>
<span class="sd"> request: Объект запроса pytest.</span>
<span class="sd"> Returns:</span>
<span class="sd"> Browser: Экземпляр Firefox.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">playwright</span><span class="o">.</span><span class="n">firefox</span><span class="o">.</span><span class="n">launch</span><span class="p">(</span>
<span class="n">headless</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;h&quot;</span><span class="p">),</span>
<span class="n">slow_mo</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;slow&quot;</span><span class="p">),</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="get_chrome_browser">
<a class="viewcode-back" href="../../fixtures.html#fixtures.pages.get_chrome_browser">[документация]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">get_chrome_browser</span><span class="p">(</span><span class="n">playwright</span><span class="p">:</span> <span class="n">Playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Browser</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Создает и возвращает экземпляр Chrome браузера.</span>
<span class="sd"> Args:</span>
<span class="sd"> playwright: Экземпляр Playwright.</span>
<span class="sd"> request: Объект запроса pytest.</span>
<span class="sd"> Returns:</span>
<span class="sd"> Browser: Экземпляр Chrome.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">playwright</span><span class="o">.</span><span class="n">chromium</span><span class="o">.</span><span class="n">launch</span><span class="p">(</span>
<span class="n">headless</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;h&quot;</span><span class="p">),</span>
<span class="n">slow_mo</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;slow&quot;</span><span class="p">),</span>
<span class="n">args</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;--s&#39;</span><span class="p">]</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="get_remote_chrome">
<a class="viewcode-back" href="../../fixtures.html#fixtures.pages.get_remote_chrome">[документация]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">get_remote_chrome</span><span class="p">(</span><span class="n">playwright</span><span class="p">:</span> <span class="n">Playwright</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Browser</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Создает экземпляр Chrome для удаленного запуска.</span>
<span class="sd"> Args:</span>
<span class="sd"> playwright: Экземпляр Playwright.</span>
<span class="sd"> request: Объект запроса pytest.</span>
<span class="sd"> Returns:</span>
<span class="sd"> Browser: Экземпляр Chrome в headless режиме.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">playwright</span><span class="o">.</span><span class="n">chromium</span><span class="o">.</span><span class="n">launch</span><span class="p">(</span>
<span class="n">headless</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">slow_mo</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s2">&quot;slow&quot;</span><span class="p">)</span>
<span class="p">)</span></div>
<div class="viewcode-block" id="get_context">
<a class="viewcode-back" href="../../fixtures.html#fixtures.pages.get_context">[документация]</a>
<span class="k">def</span><span class="w"> </span><span class="nf">get_context</span><span class="p">(</span><span class="n">browser</span><span class="p">:</span> <span class="n">Browser</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="n">FixtureRequest</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">BrowserContext</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Создает и настраивает контекст браузера.</span>
<span class="sd"> Args:</span>
<span class="sd"> browser: Экземпляр браузера.</span>
<span class="sd"> request: Объект запроса pytest.</span>
<span class="sd"> start: Тип запуска (&#39;local&#39; или &#39;remote&#39;).</span>
<span class="sd"> Returns:</span>
<span class="sd"> BrowserContext: Настроенный контекст.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">start</span> <span class="o">==</span> <span class="s1">&#39;local&#39;</span><span class="p">:</span>
<span class="c1"># current_viewport = json.loads(request.config.getoption(&#39;--s&#39;))</span>
<span class="n">context</span> <span class="o">=</span> <span class="n">browser</span><span class="o">.</span><span class="n">new_context</span><span class="p">(</span>
<span class="c1"># no_viewport=True,</span>
<span class="n">viewport</span><span class="o">=</span> <span class="n">ast</span><span class="o">.</span><span class="n">literal_eval</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s1">&#39;--s&#39;</span><span class="p">)),</span>
<span class="n">locale</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s1">&#39;l&#39;</span><span class="p">)</span>
<span class="p">)</span>
<span class="n">context</span><span class="o">.</span><span class="n">set_default_timeout</span><span class="p">(</span>
<span class="n">timeout</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">)</span>
<span class="p">)</span>
<span class="c1"># Пример добавления кук (закомментировано)</span>
<span class="c1"># context.add_cookies([{&#39;url&#39;: &#39;https://example.ru&#39;, &#39;name&#39;: &#39;ab_test&#39;, &#39;value&#39;: &#39;d&#39;}])</span>
<span class="k">return</span> <span class="n">context</span>
<span class="k">elif</span> <span class="n">start</span> <span class="o">==</span> <span class="s1">&#39;remote&#39;</span><span class="p">:</span>
<span class="n">context</span> <span class="o">=</span> <span class="n">browser</span><span class="o">.</span><span class="n">new_context</span><span class="p">(</span>
<span class="n">viewport</span><span class="o">=</span><span class="n">ast</span><span class="o">.</span><span class="n">literal_eval</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s1">&#39;--s&#39;</span><span class="p">)),</span>
<span class="n">locale</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s1">&#39;l&#39;</span><span class="p">)</span>
<span class="p">)</span>
<span class="n">context</span><span class="o">.</span><span class="n">set_default_timeout</span><span class="p">(</span>
<span class="n">timeout</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">getoption</span><span class="p">(</span><span class="s1">&#39;t&#39;</span><span class="p">)</span>
<span class="p">)</span>
<span class="c1"># Пример добавления кук (закомментировано)</span>
<span class="c1"># context.add_cookies([{&#39;url&#39;: &#39;https://example.ru&#39;, &#39;name&#39;: &#39;ab_test&#39;, &#39;value&#39;: &#39;d&#39;}])</span>
<span class="k">return</span> <span class="n">context</span></div>
<div class="viewcode-block" id="return_back">
<a class="viewcode-back" href="../../fixtures.html#fixtures.pages.return_back">[документация]</a>
<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="k">def</span><span class="w"> </span><span class="nf">return_back</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>
<span class="sd"> browser: Экземпляр страницы браузера.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">browser</span><span class="o">.</span><span class="n">go_back</span><span class="p">()</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Авторские права 2025, NPO KIS. </p>
</div>
Собрано при помощи <a href="https://www.sphinx-doc.org/">Sphinx</a> с использованием
<a href="https://github.com/readthedocs/sphinx_rtd_theme">темы,</a>
предоставленной <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>