Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Из-за чего возникает ошибка WinError 10061 в Selenium, pytnoh + pytest?

pytest
python
selenium
webdriver
Теги: #<Tag:0x00007f7b63090700> #<Tag:0x00007f7b63090520> #<Tag:0x00007f7b630901b0> #<Tag:0x00007f7b63097fa0>

(Bitande7) #1

Использую pytest + selenium для тестирования веб приложения.

Создал файл с тестами, в одном файле два теста, две функции.

def test_add_one_product_to_cart(app):
    pass

def test_add_multiple_product_to_cart(app):
    pass

это файл constest.py

fixture = None

@pytest.fixture(scope="function")
def app(request):

    global fixture

    if fixture is None:
        fixture = App()

    request.addfinalizer(fixture.destroy)
    return fixture

По идее, браузер открывается перед каждым тестом, а затем закрывается. Первый тест отрабатывает нормально, но второй не запускается из-за ошибки - ConnectionRefusedError: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Из-за чего возникает ошибка?


#2

Все очень просто: при выполнении первого теста фикстура app отрабатывает все по-честному, т.е. создает экземпляр App и записывает ее в глогальную переменную fixture. По завершению теста выполняет функцию destroy, где Вы, скорее всего, закрываете браузер. После этого начинает запускаться второй тест. Однако! Во второй раз App не проинициализируется (браузер не запустится), т.к. с прошлого раза глобальная переменная fixture уже не равна None. И, когда Вы будете переходить по адресу вашего веб приложения, как раз-таки и возникнет то самое исключение.