Почему Pytest не позволяет запустить фикстуры с разным scope?

Моя идея была в том, чтобы при запуске сессии или к примеру модуля, логиниться, получать куки и затем добавлять куки при каждом запуске браузера (для каждого теста).

Я сделал фикстуру которая логинится и скачивает куки, поставил scope=“session”

@pytest.fixture(scope="session", autouse=True)

def get_cookies(browser):

    browser.get(auth_url)

    browser.get(login_url)

    input_login = browser.find_element(*LoginPageLocators.LOGIN_FIELD)

    input_login.send_keys(login)

    input_password = browser.find_element(*LoginPageLocators.PASS_FIELD)

    input_password.send_keys(password)

    submit = browser.find_element(*LoginPageLocators.SUBMIT_BUTTON)

    submit.click()

    time.sleep(2)

    pickle.dump(browser.get_cookies(), open("E:\\Git\\test_project\\files\\cookies", "wb"))

    print("Cookies downloaded")

Но при запуске теста получаю ошибку, из которой единственное что я понимаю это то, что есть какой-то конфликт между фикстурой браузера со scope=“function” и фикстурой которую я сделал, обе находятся в conftest.py Подскажите пожалуйста в чём тут проблема и как это решать? Если поставить одинаковый скоуп у фикстур, то всё работает, но не так как мне нужно.

Никто не сталкивался с подобным? Очень нужна помошь

То что я изложу ниже это рассуждения, на практике не пробовал

Ты пользуешься фикстурой browser, которая скорее всего создает новый объект браузера для каждого тестогого метода.
В фикстуре get_cookies, ты просишь себе браузер, возможно pytest не согласен ее вызвать для другой фикстуры в начале сессии или в browser какой-то перекрестный вызов get_cookies

Попробуй для начала продублировать код создания браузера непосредственно в get_cookies

Решил этот вопрос несколько дней назад, но не дошли руки отписаться. Ты мыслишь верно, вот в чём была моя проблема более развёрнуто, вдруг кому-то пригодится. Из документации Pytest - при запросе фикстуры функцией сначала инициализиурются фикстуры с самой широкой областью действия - session и module, а затем - фикстуры более низкого уровня с областями class или function. В рамках одной тестовой функции порядок создания фикстур с одинаковой областью действия зависит от очередности вызова этих фикстур и установленных между ними зависимостей. При этом фикстуры с параметром autouse = True инициализируются прежде явно объявленных фикстур того же уровня.
Получилось что я указываю в фикстуре get_cookies аргументом browser, но т.к. эта фикстура инициализируется после фикстуры браузера по очередности (scope=“function”), get_cookies не может обнаружить аргумент и появляется ошибка.
Переделал код таким образом - убрал аргумент, в коде явно указал что browser это экземпляр вебдрайвера.