Как закрыть сокет socks5 в Python? - PullRequest
0 голосов
/ 11 апреля 2019

Здравствуйте, у меня проблема с сокетами socks5.Я пытаюсь создать инструмент для автоматизированного тестирования пользовательского интерфейса с помощью селенового хромдрайвера.Это делается в цикле for, в каждом цикле создается и открывается новый драйвер.На этом этапе мне нужно войти через imap на электронную почту с поддержкой socks5.И я не знаю, как закрыть сокет в конце цикла, потому что селен не может открыть новый драйвер.

Я уже пробовал что-то вроде команды .close () или что-то еще.И после imap.close () и driver.close () он не отключается сам.

Перед этим кодом он входит в цикл, создает драйвер, открывает драйвер, выполняет некоторые задачи, и пока драйвер открыт, онподключается к электронной почте

 try:
        provider = email.split("@")[1].split(":")[0]
        socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,proxy.split(":")[0],int(proxy.split(":")[1].strip()),True)
        socket.socket = socks.socksocket
        imap = ImapClient(recipient=email, password=password, provider=provider, servers=servers)
        imap.login()
        # retrieve messages from a given sender
        messages = imap.get_messages(sender='')
    except TimeoutError as e:
        driver.close()
        continue
    except socket.gaierror as e:

        driver.close()
        continue

После этого он загружает электронную почту, закрывает imap и драйвер и продолжает следующий цикл итерации

...