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()