Декоратор для выдачи экземпляров браузера (selenium)

В pytest очень удобно пользоваться фикстурами для работы с отдельными экземплярами браузера в selenium для тестирования - инициируется инстанс, живет в течение scope, а по окончании работы/при ошибках вызывается финалайзер, который корректно завершает работу.

@pytest.fixture(scope="module")
def driver(request):
    option = Options()
    option.add_argument("--headless")
    browser = webdriver.Chrome(executable_path=config.drivers(), options=option)
    yield browser

    def fin():
        browser.quit()
    request.addfinalizer(fin)

Такая фикстура лежит в conftest.py, в тестах достаточно передать эту фикстуру как аргумент - pytest ее подтянет и будет использовать.

А как можно реализовать такую задачу без pytest? Мне нужен декоратор, который будет отдавать экземпляр браузера каждый раз при обращении к нему, и будет тушить инстанс при возможных исключениях. Не очень понимаю, как передавать объект request в скрипт в таком случае.


Ответы (0 шт):