def browser(logger, request):
    selected_browser = request.config.getoption('--browser')
    if selected_browser not in ('firefox', 'chrome'):
        raise ValueError(
            f'--browser option can only be "firefox" or "chrome", received "{selected_browser}"'
        )
    executor = request.config.getoption('--executor')
    browser_logger = logging.getLogger('Browser')
    logger.info(f'Starting {selected_browser.capitalize()}')
    browser = EventFiringWebDriver(
        webdriver.Remote(
            command_executor=f'http://{executor}:4444/wd/hub',
            desired_capabilities={
                'browserName': selected_browser,
                'loggingPrefs': {
                    'browser': 'ALL'
                },
                'acceptInsecureCerts': True,
            },
        ),
        EventListener(browser_logger),
    )
    browser.implicitly_wait(request.config.getoption('--time'))
    browser.get(request.config.getoption('--url'))
    # Ожидание на случай первоначальной установки
    WebDriverWait(browser, 100).until(EC.visibility_of_element_located(HEADER))
    failed = request.session.testsfailed
    yield browser
    if request.session.testsfailed > failed:
        browser.save_screenshot(
            f'screenshots/{datetime.now().strftime("%d-%m-%Y %H-%M-%S")}.png')
    browser.quit()